笔记
文档更新由 GitHub 自动完成。
diff --git a/ref_sensors/index.html b/ref_sensors/index.html
index b455b69c..b5e57086 100755
--- a/ref_sensors/index.html
+++ b/ref_sensors/index.html
@@ -2134,12 +2134,12 @@
动态视觉传感器相机
蓝图: sensor.camera.dvs
输出: 每步 carla.DVSEventArray (除非sensor_tick
另有说明)。
-
动态视觉传感器 (Dynamic Vision Sensor, DVS)或事件相机是一种工作方式与传统相机完全不同的传感器。事件相机不是以固定速率捕获强度图像,而是以事件流的形式异步测量强度变化,对每个像素的亮度变化进行编码。与标准摄像机相比,事件摄像机具有独特的属性。它们具有非常高的动态范围(140 dB 与 60 dB)、无运动模糊和高时间分辨率(微秒级)。因此,事件相机是即使在具有挑战性的高速场景和高动态范围环境下也能提供高质量视觉信息的传感器,为基于视觉的算法提供了新的应用领域。
-
动态视觉传感器摄像机输出事件流。当对数强度的变化达到预定义的恒定阈值(通常在 15% 到 30% 之间)时,在时间戳处的像素处e=(x,y,t,pol)
触发事件。
-
L(x,y,t) - L(x,y,t-\delta t) = pol C
-
t-\delta t
是该像素上最后一个事件被触发的时间,并且pol
是根据亮度变化的符号的事件的极性。+1
当亮度增加时极性为正,-1
当亮度减少时极性为负。工作原理如下图所示。标准相机以固定速率输出帧,从而在场景中不存在运动时发送冗余信息。相比之下,事件摄像机是数据驱动的传感器,能够以微秒延迟响应亮度变化。在绘图中,只要(带符号的)亮度变化随时间超过C
一维的对比度阈值,就会生成正(或负)事件(蓝点、红点) 。观察信号快速变化时事件率如何增长。
+
动态视觉传感器 (Dynamic Vision Sensor, DVS)或事件相机是一种工作方式与传统相机完全不同的传感器。事件相机不是以固定速率捕获强度图像,而是以事件流的形式异步测量强度变化,对每个像素的亮度变化进行编码。与标准摄像机相比,事件摄像机具有独特的属性。它们具有非常高的动态范围(140 分贝对 60 分贝(dB, 十分之一 decibel Bell,贝表示的是两个物理量的比值,基准值用分贝表示的话是0dB))、无运动模糊和高时间分辨率(微秒级)。因此,事件相机是即使在具有挑战性的高速场景和高动态范围环境下也能提供高质量视觉信息的传感器,为基于视觉的算法提供了新的应用领域。
+
动态视觉传感器摄像机输出事件流。当对数强度L
的变化达到预定义的恒定阈值(通常在 15% 到 30% 之间)时,在时间戳t
处的像素x
,y
处触发事件e=(x,y,t,pol)
。
+
L(x,y,t) - L(x,y, t-\delta t) = pol C
+
t-\delta t
是该像素上最后一个事件被触发的时间,pol
是根据亮度变化的符号来判断事件的极性(polarity)。+1
当亮度增加时极性为正,-1
当亮度减少时极性为负。工作原理如下图所示。标准相机以固定速率输出帧,从而在场景中不存在运动时发送冗余信息。相比之下,事件摄像机是数据驱动的传感器,能够以微秒延迟响应亮度变化。在绘图中,只要(带符号的)亮度变化随时间t
超过一维x
的对比度(contrast )阈值C
,就会生成正(或负)事件(蓝点、红点) 。观察信号快速变化时事件率如何增长。
-
动态视觉传感器摄像机的当前实现在两个连续同步帧之间以统一采样方式工作。因此,为了仿真真实事件相机的高时间分辨率(微秒级),传感器需要以高频率执行(比传统相机的频率高得多)。实际上,Carla 汽车行驶速度越快,事件数量就会增加。因此,传感器频率应随着场景的动态而相应增加。用户应该在时间精度和计算成本之间找到平衡。
+
动态视觉传感器的当前实现在两个连续同步帧之间以统一采样方式工作。因此,为了仿真真实事件相机的高时间分辨率(微秒级),传感器需要以高频率执行(比传统相机的频率高得多)。实际上,Carla 汽车行驶速度越快,事件数量就会增加。因此,传感器频率应随着场景的动态而相应增加。用户应该在时间精度和计算成本之间找到平衡。
提供的脚本 manual_control.py
使用动态视觉传感器摄像头来展示如何配置传感器、如何获取事件流以及如何以图像格式(通常称为事件框架)描述此类事件。
请注意,由于动态视觉传感器摄像机的采样方法,如果两个连续同步帧之间没有像素差异,摄像机将不会返回图像。这总是发生在第一帧中,因为没有前一帧可供比较,并且在帧之间没有移动的情况下也是如此。
@@ -2159,25 +2159,25 @@
动态视觉传感器相机属性
positive_threshold |
float |
0.3 |
-
与亮度变化增量相关的正阈值 C (0-1)。 |
+
与亮度变化增量相关的正阈值 C,范围为 (0-1)。 |
negative_threshold |
float |
0.3 |
-与亮度变化减少相关的负阈值 C (0-1)。 |
+与亮度变化减少相关的负阈值 C,范围为(0-1)。 |
sigma_positive_threshold |
float |
0 |
-积极事件的白噪声标准差 (0-1)。 |
+正事件的白噪声标准差,范围为 (0-1)。 |
sigma_negative_threshold |
float |
0 |
-负面事件的白噪声标准差 (0-1)。 |
+负事件的白噪声标准差,范围为 (0-1)。 |
refractory_period_ns |
@@ -2189,13 +2189,13 @@ 动态视觉传感器相机属性
use_log |
bool |
true |
-是否以对数强度标度工作。 |
+是否以对数强度刻度工作。 |
log_eps |
float |
0.001 |
-用于将图像转换为日志的 Epsilon 值: L = log(eps + I / 255.0) . 其中 I 是 RGB 图像的灰度值:
I = 0.2989*R + 0.5870*G + 0.1140*B . |
+用于将图像转换为对数的 Epsilon 值: L = log(eps + I / 255.0) . 其中 I 是 RGB 图像的灰度值:
I = 0.2989*R + 0.5870*G + 0.1140*B . |
@@ -2357,7 +2357,7 @@
传感器(子)类型
协同感知消息
- 蓝图: sensor.other.v2x
-- 输出: carla.CAMData, 根据 ETSI CAM (ooperative Awareness Message,协同警示消息) 标准触发,除非另有配置
+- 输出: carla.CAMData, 根据 ETSI CAM (European Telecommunications Standards Institute , Cooperative Awareness Message,欧洲通信标准协会,协同警示消息) 标准触发,除非另有配置
根据 ETSI 标准的触发条件:
- 航向角变化 > $4$°
@@ -2508,7 +2508,7 @@
方法
-
自定义 V2X 消息传感器的工作方式与其他传感器略有不同,因为它除了侦听函数之外还具有发送函数,需要先调用该函数,然后其他此类传感器才能接收任何内容。只有在调用发送时才会触发自定义消息的传输。发送给发送函数的每条消息仅向当前生成的所有自定义 V2X 消息传感器传输一次。
+
自定义 V2X 消息传感器的工作方式与其他传感器略有不同,因为它除了侦听函数之外还具有发送函数,需要先调用发送函数,然后其他此类传感器才能接收任何内容。只有在调用发送时才会触发自定义消息的传输。发送给发送函数的每条消息仅向当前生成的所有自定义 V2X 消息传感器传输一次。
示例:
bp = world.get_blueprint_library().find('sensor.other.v2x_custom')
sensor = world.spawn_actor(bp, carla.Transform(), attach_to=parent)
diff --git a/search/search_index.json b/search/search_index.json
index 9e6f8ecd..0ce34645 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 \u8fd0\u884c \u5165\u95e8 \u793a\u4f8b \u540e \u53ef\u4ee5 \u6309 \u81ea\u5df1 \u559c\u6b22 \u7684 \u987a\u5e8f \u968f\u610f \u9605\u8bfb \u3002 \u5165\u95e8 \u793a\u4f8b \u4e0b\u8f7d \u94fe\u63a5 \u4e2d \u7684 software / carla _ 0.9 . 15 \u4e2d \u7684 \u6240\u6709 \u6587\u4ef6 \u5e76 \u89e3\u538b \uff1b \u8fd0\u884c WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 CarlaUE4 . exe \u542f\u52a8 \u573a\u666f \uff0c \u8fdb\u5165 \u573a\u666f \u540e \u6309 W \u3001 S \u3001 A \u3001 D \u79fb\u52a8 \u573a\u666f \u89c6\u89d2 \uff1b \u4f7f\u7528 Python37 / python . exe \u8fd0\u884c \u811a\u672c generate _ traffic . py \u548c python manual _ control . py \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u5e76 \u624b\u52a8 \u63a7\u5236 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u3002 \u6ce8\u610f \u5982\u679c \u5bf9 \u6587\u6863 \u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u53ef\u4ee5 \u5728 \u672c \u6587\u6863 \u7684 \u6e90\u7801 \u4ed3\u5e93 \u4e2d \u7684 Issues \u9875\u9762 \u8fdb\u884c \u63d0\u95ee \u6216\u8005 \u63d0\u4ea4 Pull Request \u76f4\u63a5 \u4fee\u6539 \u6587\u6863 \u3002 \u7b80\u4ecb \u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \uff0c \u4ecb\u7ecd \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u793a\u4f8b \u2014 Carla \u7ecf\u5178 \u793a\u4f8b \u4e3b\u9898 \u57fa\u7840 \u2014 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \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 \u5f00\u53d1 \u2014 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \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 \u548c SUMO \u534f\u540c \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u534f\u540c \u4eff\u771f Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u884c\u4eba \u884c\u4eba \u5bfc\u822a \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u8bbe\u7f6e \u52a8\u753b \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u8bbe\u7f6e \u52a8\u753b \u884c\u4eba \u89c6\u89c9 \u2014 \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u4eff\u771f \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u884c\u4eba \u5efa\u6a21 \u2014 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u5bf9 \u4eba \u8fdb\u884c \u5efa\u6a21 \u9ad8\u7ea7 \u6982\u5ff5 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \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 Carla \u4ee3\u7406 \u2014 \u4ee3\u7406 \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 Carla \u8bbe\u7f6e \u2014 Carla \u53c2\u6570 \u914d\u7f6e \u8bbe\u7f6e Carla \u6a21\u62df \u6a21\u62df\u5668 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u2014 \u5728 \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u4e2d \u73a9\u6e38 \u6e38\u620f \u73a9\u6e38\u620f \u65f6 \u4f7f\u7528 \u7684 \u6309\u952e \u7ed1\u5b9a \u65e0 \u663e\u793a \u663e\u793a\u5c4f \u8fd0\u884c Carla \u5e76 \u9009\u62e9 GPU \u2014 \u4f7f\u7528 \u672a \u63d2 \u5728 \u5c4f\u5e55 \u4e0a \u7684 GPU \u6765 \u6e32\u67d3 Carla \u7684 \u684c\u9762 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u2014 \u4e0b\u8f7d \u6750\u8d28 \u5e76 \u5c06 \u5176 \u94fe\u63a5 \u5230 \u6211\u4eec \u7684 \u8f66\u8f86 \uff0c \u4ee5 \u83b7\u5f97 \u66f4 \u903c\u771f \u7684 \u8f66\u6f06 \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 \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 \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 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5f00\u53d1 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u2014 \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b \u2014 \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 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \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 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \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 \u2014 \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5 \u57fa\u51c6 \u6d4b\u8bd5 \u9a7e\u9a76 \u57fa\u51c6 \u2014 \u7528\u4e8e \u8bc4\u4f30 \u9a7e\u9a76 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u4ee3\u7406 \uff09 \u5e76 \u83b7\u53d6 \u6709\u5173 \u5176 \u6027\u80fd \u7684 \u6307\u6807 \u57fa\u51c6 \u6027\u80fd \u2014 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784 \u2014 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u6d4b\u8bd5 \u4ee3\u7406 \u2014 \u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u2014 \u7528\u4e8e \u6839\u636e \u4ee3\u7406 \u5728 \u57fa\u51c6 \u6d4b\u8bd5 \u671f\u95f4 \u6267\u884c \u7684 \u64cd\u4f5c \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u6458\u8981 \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 \u4ea4\u901a \u573a\u666f \u2014 \u57fa\u4e8e Carla \u4ea4\u901a \u573a\u666f \u5b9a\u4e49 \u548c \u6267\u884c \u5f15\u64ce 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 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 \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 CarSim \u96c6\u6210 \u2014 \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 PTV - Vissim \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u534f\u540c \u4eff\u771f 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 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \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 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u2014 \u57fa\u672c \u7684 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u5730\u7406 \u7a7a\u95f4 \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u2014 \u5c06 3D \u5730\u7406 \u7a7a\u95f4 \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u5f15\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u8d21\u732e \u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u5176\u4ed6 RoadRunner \u2014 \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario \u2014 \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u865a\u5e7b \u5f15\u64ce \u2014 \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u6559\u7a0b Blender \u624b\u518c \u2014 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u6587\u4ef6 \u8bf4\u660e \u2014 \u8bf4\u660e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u5404\u4e2a \u6587\u4ef6 \u7684 \u4f5c\u7528 \u5f85 \u505a \u5217\u8868 \u2014 \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u53c2\u8003 Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u8d44\u6e90 \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \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 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6","title":"\u9996\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 \u8fd0\u884c \u5165\u95e8 \u793a\u4f8b \u540e \u53ef\u4ee5 \u6309 \u81ea\u5df1 \u559c\u6b22 \u7684 \u987a\u5e8f \u968f\u610f \u9605\u8bfb \u3002","title":"Carla \u6587\u6863"},{"location":"#_1","text":"\u4e0b\u8f7d \u94fe\u63a5 \u4e2d \u7684 software / carla _ 0.9 . 15 \u4e2d \u7684 \u6240\u6709 \u6587\u4ef6 \u5e76 \u89e3\u538b \uff1b \u8fd0\u884c WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 CarlaUE4 . exe \u542f\u52a8 \u573a\u666f \uff0c \u8fdb\u5165 \u573a\u666f \u540e \u6309 W \u3001 S \u3001 A \u3001 D \u79fb\u52a8 \u573a\u666f \u89c6\u89d2 \uff1b \u4f7f\u7528 Python37 / python . exe \u8fd0\u884c \u811a\u672c generate _ traffic . py \u548c python manual _ control . py \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u5e76 \u624b\u52a8 \u63a7\u5236 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u3002 \u6ce8\u610f \u5982\u679c \u5bf9 \u6587\u6863 \u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u53ef\u4ee5 \u5728 \u672c \u6587\u6863 \u7684 \u6e90\u7801 \u4ed3\u5e93 \u4e2d \u7684 Issues \u9875\u9762 \u8fdb\u884c \u63d0\u95ee \u6216\u8005 \u63d0\u4ea4 Pull Request \u76f4\u63a5 \u4fee\u6539 \u6587\u6863 \u3002","title":"\u5165\u95e8 \u793a\u4f8b"},{"location":"#_2","text":"\u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \uff0c \u4ecb\u7ecd \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u793a\u4f8b \u2014 Carla \u7ecf\u5178 \u793a\u4f8b","title":"\u7b80\u4ecb "},{"location":"#_3","text":"\u57fa\u7840 \u2014 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \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 \u5f00\u53d1 \u2014 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c","title":"\u4e3b\u9898"},{"location":"#_4","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 \u548c SUMO \u534f\u540c \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u534f\u540c \u4eff\u771f Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b","title":"\u4ea4\u901a"},{"location":"#_5","text":"\u884c\u4eba \u5bfc\u822a \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u8bbe\u7f6e \u52a8\u753b \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u8bbe\u7f6e \u52a8\u753b \u884c\u4eba \u89c6\u89c9 \u2014 \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u4eff\u771f \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u884c\u4eba \u5efa\u6a21 \u2014 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u5bf9 \u4eba \u8fdb\u884c \u5efa\u6a21","title":"\u884c\u4eba"},{"location":"#_6","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \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 Carla \u4ee3\u7406 \u2014 \u4ee3\u7406 \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 Carla \u8bbe\u7f6e \u2014 Carla \u53c2\u6570 \u914d\u7f6e \u8bbe\u7f6e Carla \u6a21\u62df \u6a21\u62df\u5668 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u2014 \u5728 \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u4e2d \u73a9\u6e38 \u6e38\u620f \u73a9\u6e38\u620f \u65f6 \u4f7f\u7528 \u7684 \u6309\u952e \u7ed1\u5b9a \u65e0 \u663e\u793a \u663e\u793a\u5c4f \u8fd0\u884c Carla \u5e76 \u9009\u62e9 GPU \u2014 \u4f7f\u7528 \u672a \u63d2 \u5728 \u5c4f\u5e55 \u4e0a \u7684 GPU \u6765 \u6e32\u67d3 Carla \u7684 \u684c\u9762 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u2014 \u4e0b\u8f7d \u6750\u8d28 \u5e76 \u5c06 \u5176 \u94fe\u63a5 \u5230 \u6211\u4eec \u7684 \u8f66\u8f86 \uff0c \u4ee5 \u83b7\u5f97 \u66f4 \u903c\u771f \u7684 \u8f66\u6f06 \u3002","title":"\u9ad8\u7ea7 \u6982\u5ff5"},{"location":"#_7","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 \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 \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 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"#_8","text":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u2014 \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b \u2014 \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 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \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 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \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 \u2014 \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5","title":"\u81ea\u5b9a\u4e49 \u5f00\u53d1"},{"location":"#_9","text":"\u9a7e\u9a76 \u57fa\u51c6 \u2014 \u7528\u4e8e \u8bc4\u4f30 \u9a7e\u9a76 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u4ee3\u7406 \uff09 \u5e76 \u83b7\u53d6 \u6709\u5173 \u5176 \u6027\u80fd \u7684 \u6307\u6807 \u57fa\u51c6 \u6027\u80fd \u2014 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784 \u2014 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u6d4b\u8bd5 \u4ee3\u7406 \u2014 \u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u2014 \u7528\u4e8e \u6839\u636e \u4ee3\u7406 \u5728 \u57fa\u51c6 \u6d4b\u8bd5 \u671f\u95f4 \u6267\u884c \u7684 \u64cd\u4f5c \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u6458\u8981","title":"\u57fa\u51c6 \u6d4b\u8bd5"},{"location":"#_10","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 \u4ea4\u901a \u573a\u666f \u2014 \u57fa\u4e8e Carla \u4ea4\u901a \u573a\u666f \u5b9a\u4e49 \u548c \u6267\u884c \u5f15\u64ce 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 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 \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 CarSim \u96c6\u6210 \u2014 \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 PTV - Vissim \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u534f\u540c \u4eff\u771f 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 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \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 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u2014 \u57fa\u672c \u7684 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u5730\u7406 \u7a7a\u95f4 \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u2014 \u5c06 3D \u5730\u7406 \u7a7a\u95f4 \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u5f15\u5165 \u865a\u5e7b \u5f15\u64ce","title":"\u751f\u6001\u7cfb\u7edf"},{"location":"#_11","text":"\u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898","title":"\u6e90\u4ee3\u7801 \u7f16\u8bd1"},{"location":"#_12","text":"\u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357","title":"\u8d21\u732e"},{"location":"#_13","text":"RoadRunner \u2014 \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario \u2014 \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u865a\u5e7b \u5f15\u64ce \u2014 \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u6559\u7a0b Blender \u624b\u518c \u2014 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u6587\u4ef6 \u8bf4\u660e \u2014 \u8bf4\u660e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u5404\u4e2a \u6587\u4ef6 \u7684 \u4f5c\u7528 \u5f85 \u505a \u5217\u8868 \u2014 \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd","title":"\u5176\u4ed6"},{"location":"#_14","text":"Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u8d44\u6e90 \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \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 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6","title":"\u53c2\u8003"},{"location":"CarlaUE4/","text":"CarlaUE4 \u76ee\u5f55 \u4f9d\u8d56 \u4f9d\u8d56\u56fe \uff1a","title":"CarlaUE4"},{"location":"CarlaUE4/#carlaue4","text":"\u76ee\u5f55 \u4f9d\u8d56 \u4f9d\u8d56\u56fe \uff1a","title":"CarlaUE4"},{"location":"adv_agents/","text":"Carla \u4ee3\u7406 Carla \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ee3\u7406 \u3002 \u4ee3\u7406 \u811a\u672c \u6982\u8ff0 \u89c4\u5212 \u4e0e \u63a7\u5236 \u4ee3\u7406 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u4ee3\u7406 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u4ee3\u7406 \u4ee3\u7406 \u811a\u672c \u6982\u8ff0 Carla \u4ee3\u7406 \u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u89c4\u5212 \u548c \u63a7\u5236 \u548c \u4ee3\u7406 \u884c\u4e3a \u3002 \u89c4\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 \u8def\u5f84 \u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u8def\u5f84 \u70b9 \u3002 \u8def\u5f84 \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 \u4ee3\u7406 \u884c\u4e3a basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u91ce\u86ee \u3002 \u5b9e\u73b0 \u4e00\u4e2a \u4ee3\u7406 \u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u4ee3\u7406 \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 \u4ee3\u7406 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u4ee3\u7406 \u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u4ee3\u7406 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u4ee3\u7406 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u4ee3\u7406 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u4ee3\u7406 \u7c7b\u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u4ee3\u7406 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u4ee3\u7406 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 \u4ee3\u7406 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u4ee3\u7406 \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 \u4ee3\u7406 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u4ee3\u7406 \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 \u4ee3\u7406 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u4ee3\u7406 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u8def\u5f84 \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 \u4ee3\u7406 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u4ee3\u7406 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive \u884c\u4e3a \u7c7b\u578b \u884c\u4e3a \u4ee3\u7406 \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 \u5343\u7c73 / \u5c0f\u65f6 \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 30 \u5343\u7c73 / \u5c0f\u65f6 \u4e14 speed _ lim _ dist \u4e3a 10 \u5343\u7c73 / \u5c0f\u65f6 \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u5343\u7c73 / \u5c0f\u65f6 \uff09 \u3002 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 # \u4ee3\u7406 \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 \u4ee3\u7406 Carla \u4ee3\u7406 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u4ee3\u7406 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u4ee3\u7406 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u65e0\u7a77 \u65e0\u7a77\u7684 \u3002 \u6bcf\u4e2a \u4ee3\u7406 \u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 __ init __ \u548c \u8fd0\u884c \u6b65 run _ step \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 : 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 \u4ee3\u7406 \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 \u4ee3\u7406 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"Carla \u4ee3\u7406"},{"location":"adv_agents/#carla","text":"Carla \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ee3\u7406 \u3002 \u4ee3\u7406 \u811a\u672c \u6982\u8ff0 \u89c4\u5212 \u4e0e \u63a7\u5236 \u4ee3\u7406 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u4ee3\u7406 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u4ee3\u7406","title":"Carla \u4ee3\u7406"},{"location":"adv_agents/#_1","text":"Carla \u4ee3\u7406 \u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u89c4\u5212 \u548c \u63a7\u5236 \u548c \u4ee3\u7406 \u884c\u4e3a \u3002","title":"\u4ee3\u7406 \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 \u8def\u5f84 \u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u8def\u5f84 \u70b9 \u3002 \u8def\u5f84 \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":"\u89c4\u5212 \u4e0e \u63a7\u5236 "},{"location":"adv_agents/#_3","text":"basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u91ce\u86ee \u3002","title":"\u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u4ee3\u7406 \u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u4ee3\u7406 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u4ee3\u7406 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u4ee3\u7406 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u4ee3\u7406 \u7c7b\u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u4ee3\u7406 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u4ee3\u7406 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 \u4ee3\u7406 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u4ee3\u7406 \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 \u4ee3\u7406 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u4ee3\u7406 \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 \u4ee3\u7406 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u4ee3\u7406 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u8def\u5f84 \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 \u4ee3\u7406 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u4ee3\u7406 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive","title":"\u5b9e\u73b0 \u4e00\u4e2a \u4ee3\u7406 "},{"location":"adv_agents/#_5","text":"\u884c\u4e3a \u4ee3\u7406 \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 \u5343\u7c73 / \u5c0f\u65f6 \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 30 \u5343\u7c73 / \u5c0f\u65f6 \u4e14 speed _ lim _ dist \u4e3a 10 \u5343\u7c73 / \u5c0f\u65f6 \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u5343\u7c73 / \u5c0f\u65f6 \uff09 \u3002 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 # \u4ee3\u7406 \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 \u4ee3\u7406 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u4ee3\u7406 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u4ee3\u7406 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u65e0\u7a77 \u65e0\u7a77\u7684 \u3002 \u6bcf\u4e2a \u4ee3\u7406 \u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 __ init __ \u548c \u8fd0\u884c \u6b65 run _ step \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 : 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 \u4ee3\u7406 \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 \u4ee3\u7406 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"\u521b\u5efa \u4ee3\u7406 "},{"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 \u6d4b\u8bd5 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 \u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 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 -- \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 \u7b97\u6cd5 \u6027\u80fd \u6d4b\u8bd5 \u7b97\u6cd5 \u6027\u80fd \u6392\u884c \u6392\u884c\u699c \u3002 \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 \u6d4b\u8bd5 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 \u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 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","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","title":"Carla \u6027\u80fd \u62a5\u544a "},{"location":"adv_benchmarking/#_7","text":"\u7b97\u6cd5 \u6027\u80fd \u6392\u884c \u6392\u884c\u699c \u3002 \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":"\u7b97\u6cd5 \u6027\u80fd \u6d4b\u8bd5 "},{"location":"adv_cesium/","text":"\u503e\u659c \u6a21\u578b \u5bfc\u5165 Carla 1 . \u4e0b\u8f7d \u5e76 \u89e3\u538b Cesium for Unreal \u63d2\u4ef6 \u5230 CarlaUE \u5f15\u64ce \u7684 plugins \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff1a 2 . \u5c06 \u63d2\u4ef6 \u7684 BuildId \u4fee\u6539 \u4e0e CarlaUE \u5f15\u64ce \u7684 BuildId \u4e00\u81f4 \u3002 \u5f15\u64ce \u7684 BuildId \u5728 \u5982\u4e0b \u8def\u5f84 \uff1a \u9700 \u4fee\u6539 \u7684 BuildId 3 . \u672c\u5730 \u6d4b\u8bd5 \u8fd8 \u9700\u8981 \u4fee\u6539 \u5176\u4ed6 \u51e0\u4e2a \u5185\u7f6e \u63d2\u4ef6 \u7684 BuildId \u4e5f \u8981 \u4e0e \u5f15\u64ce \u7684 \u4e00\u81f4 \u3002 \u6709 \u5982\u4e0b \u51e0\u4e2a \u5730\u65b9 \uff1a carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Experimental \\ Landmass \\ Binaries \\ Win64 carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Experimental \\ Water \\ Binaries \\ Win64 carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Editor \\ BlueprintMaterialTextureNodes \\ Binaries \\ Win64 4 . \u5728 CarlaUE \u4e2d \u6dfb\u52a0 \u63d2\u4ef6 \u6dfb\u52a0 \u5b8c\u6210 \u540e \u91cd\u542f \u5f15\u64ce \u3002 5 . \u6dfb\u52a0 \u63d2\u4ef6 \u5bf9\u8c61 \u5230 \u573a\u666f \u4e2d , \u914d\u7f6e \u53c2\u6570 \u548c \u6a21\u578b \u8def\u5f84 \uff1a esiumGeoreference \u8bbe\u7f6e \u4e3a \uff1a 28.235238 , 112.877178 , 0 Source \u8bbe\u7f6e \u4e3a File : / / / D : / ssd / model / tileset . json \u3002 \u6ce8\u610f \u4ece \u94fe\u63a5 \u4e2d \u7684 map \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u4e0b\u8f7d \u4e2d \u7535 \u8f6f\u4ef6 \u8f6f\u4ef6\u56ed _ cesium _ model . zip \u5e76 \u89e3\u538b \u3002 \u8fd9\u91cc \u6d4b\u8bd5 \u7528 \u7684 \u662f \u672c\u5730 \u8def\u5f84 \uff0c \u4e5f \u53ef\u4ee5 \u7528 \u9759\u6001 \u8d44\u6e90 \u670d\u52a1 \u3002 6 . \u5c06 Trees . umap \u4e2d \u653e\u5230 \u672c\u5730 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff0c \u83dc\u5355 \u4e2d \u70b9\u51fb \u7a97\u53e3 - > \u5173\u5361 \uff0c \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d\u5c06 Trees . umap \u62d6\u8fdb \u5bfc\u5f39 \u51fa \u754c\u9762 \uff0c \u7136\u540e \u53f3\u952e Trees \u5173\u5361 \uff0c \u9009\u62e9 \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 - > \u56fa\u5b9a \u52a0\u8f7d \u3002 7 . \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u9009\u4e2d Cesium3DTileset \uff0c \u5c06 Cesium \u4e2d \u7684 Mobility \u4fee\u6539 \u4e3a \u53ef \u79fb\u52a8 \u3002 8 . \u6dfb\u52a0 \u5149\u6e90 DirectionalLight \u3001 ExponentialHeightFog \u3001 SkyAtmosphere \u3001 SkyLight \u3002 9 . \u6a21\u578b \u5728 CarlaUE \u4e2d \u7684 \u573a\u666f \u6548\u679c \u503e\u659c \u6444\u5f71 \u7531 \u503e\u659c \u6444\u5f71 osgb \u8f6c\u6362 \u6362\u6210 \u8f6c\u6362\u6210 3Dtiles \u683c\u5f0f \uff08 cesium \u53ef \u76f4\u63a5 \u4f7f\u7528 \uff09 \u3002 \u53c2\u8003 Cesium for Unreal \u5feb\u901f \u5165\u95e8 Cesium for Unreal \u52a0\u8f7d \u672c\u5730 \u503e\u659c \u6444\u5f71","title":"\u503e\u659c \u6a21\u578b \u5bfc\u5165 Carla"},{"location":"adv_cesium/#carla","text":"1 . \u4e0b\u8f7d \u5e76 \u89e3\u538b Cesium for Unreal \u63d2\u4ef6 \u5230 CarlaUE \u5f15\u64ce \u7684 plugins \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff1a 2 . \u5c06 \u63d2\u4ef6 \u7684 BuildId \u4fee\u6539 \u4e0e CarlaUE \u5f15\u64ce \u7684 BuildId \u4e00\u81f4 \u3002 \u5f15\u64ce \u7684 BuildId \u5728 \u5982\u4e0b \u8def\u5f84 \uff1a \u9700 \u4fee\u6539 \u7684 BuildId 3 . \u672c\u5730 \u6d4b\u8bd5 \u8fd8 \u9700\u8981 \u4fee\u6539 \u5176\u4ed6 \u51e0\u4e2a \u5185\u7f6e \u63d2\u4ef6 \u7684 BuildId \u4e5f \u8981 \u4e0e \u5f15\u64ce \u7684 \u4e00\u81f4 \u3002 \u6709 \u5982\u4e0b \u51e0\u4e2a \u5730\u65b9 \uff1a carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Experimental \\ Landmass \\ Binaries \\ Win64 carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Experimental \\ Water \\ Binaries \\ Win64 carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Editor \\ BlueprintMaterialTextureNodes \\ Binaries \\ Win64 4 . \u5728 CarlaUE \u4e2d \u6dfb\u52a0 \u63d2\u4ef6 \u6dfb\u52a0 \u5b8c\u6210 \u540e \u91cd\u542f \u5f15\u64ce \u3002 5 . \u6dfb\u52a0 \u63d2\u4ef6 \u5bf9\u8c61 \u5230 \u573a\u666f \u4e2d , \u914d\u7f6e \u53c2\u6570 \u548c \u6a21\u578b \u8def\u5f84 \uff1a esiumGeoreference \u8bbe\u7f6e \u4e3a \uff1a 28.235238 , 112.877178 , 0 Source \u8bbe\u7f6e \u4e3a File : / / / D : / ssd / model / tileset . json \u3002 \u6ce8\u610f \u4ece \u94fe\u63a5 \u4e2d \u7684 map \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u4e0b\u8f7d \u4e2d \u7535 \u8f6f\u4ef6 \u8f6f\u4ef6\u56ed _ cesium _ model . zip \u5e76 \u89e3\u538b \u3002 \u8fd9\u91cc \u6d4b\u8bd5 \u7528 \u7684 \u662f \u672c\u5730 \u8def\u5f84 \uff0c \u4e5f \u53ef\u4ee5 \u7528 \u9759\u6001 \u8d44\u6e90 \u670d\u52a1 \u3002 6 . \u5c06 Trees . umap \u4e2d \u653e\u5230 \u672c\u5730 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff0c \u83dc\u5355 \u4e2d \u70b9\u51fb \u7a97\u53e3 - > \u5173\u5361 \uff0c \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d\u5c06 Trees . umap \u62d6\u8fdb \u5bfc\u5f39 \u51fa \u754c\u9762 \uff0c \u7136\u540e \u53f3\u952e Trees \u5173\u5361 \uff0c \u9009\u62e9 \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 - > \u56fa\u5b9a \u52a0\u8f7d \u3002 7 . \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u9009\u4e2d Cesium3DTileset \uff0c \u5c06 Cesium \u4e2d \u7684 Mobility \u4fee\u6539 \u4e3a \u53ef \u79fb\u52a8 \u3002 8 . \u6dfb\u52a0 \u5149\u6e90 DirectionalLight \u3001 ExponentialHeightFog \u3001 SkyAtmosphere \u3001 SkyLight \u3002 9 . \u6a21\u578b \u5728 CarlaUE \u4e2d \u7684 \u573a\u666f \u6548\u679c","title":"\u503e\u659c \u6a21\u578b \u5bfc\u5165 Carla"},{"location":"adv_cesium/#_1","text":"\u7531 \u503e\u659c \u6444\u5f71 osgb \u8f6c\u6362 \u6362\u6210 \u8f6c\u6362\u6210 3Dtiles \u683c\u5f0f \uff08 cesium \u53ef \u76f4\u63a5 \u4f7f\u7528 \uff09 \u3002","title":"\u503e\u659c \u6444\u5f71"},{"location":"adv_cesium/#_2","text":"Cesium for Unreal \u5feb\u901f \u5165\u95e8 Cesium for Unreal \u52a0\u8f7d \u672c\u5730 \u503e\u659c \u6444\u5f71","title":"\u53c2\u8003"},{"location":"adv_cpp_client/","text":"C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u8981 \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \uff0c \u60a8 \u9700\u8981 \u5b89\u88c5 make \u3002 \u5728 \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6784\u5efa Carla \uff0c \u5e76 \u6309\u7167 \u60a8 \u5e73\u53f0 \u7684 \u76f8\u5173 \u6784\u5efa \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u822a \u5230 Carla \u5b58\u50a8 \u5e93\u4e2d \u7684 Examples / CppClient \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u3002 \u60a8 \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u627e\u5230 \u4e00\u4e2a Makefile \u3002 \u8981 \u5728 Linux \u4e2d \u6784\u5efa \u5e76 \u8fd0\u884c \u5b83 \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u4e0b \u6267\u884c make run \u3002 \u5728 Windows \u4e2d \uff0c \u5728 \u540c\u4e00 \u76ee\u5f55 \u4e2d \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a CMakeLists . txt \u7684 \u6587\u4ef6 \uff0c \u5e76 \u6dfb\u52a0 \u6b64 \u6587\u4ef6 \u4e2d \u7684 \u5185\u5bb9 \uff0c \u7136\u540e \u8fd0\u884c cmake \u3002 \u8fd9\u4e2a C++ \u793a\u4f8b \u5c06 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u751f\u6210 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u5728 \u9500\u6bc1 \u548c \u7ec8\u6b62 \u8f66\u8f86 \u4e4b\u524d \u5bf9 \u5176 \u5e94\u7528 \u547d\u4ee4 \u3002 \u5305\u62ec \u76f8\u5173 \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u5bf9\u4e8e \u8fd9\u4e2a \u4f8b\u5b50 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u51e0\u4e2a \u4e0d\u540c \u7684 Carla \u7c7b \uff0c \u56e0\u6b64 \u6211\u4eec \u9700\u8981 \u5305\u542b Carla \u5e93\u4e2d \u7684 \u76f8\u5173 \u6587\u4ef6 \u5934\u6587\u4ef6 \uff0c \u5e76 \u5305\u542b \u6211\u4eec \u5c06 \u4f7f\u7528 \u7684 \u4efb\u4f55 \u6807\u51c6 \u5e93 \uff1a # include < iostream > # include < random > # include < sstream > # include < stdexcept > # include < string > # include < thread > # include < tuple > # include < carla / client / ActorBlueprint . h > # include < carla / client / BlueprintLibrary . h > # include < carla / client / Client . h > # include < carla / client / Map . h > # include < carla / client / Sensor . h > # include < carla / client / TimeoutException . h > # include < carla / client / World . h > # include < carla / geom / Transform . h > # include < carla / image / ImageIO . h > # include < carla / image / ImageView . h > # include < carla / sensor / data / Image . h > \u5c06 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5305\u62ec carla / client / Client . h \uff0c \u7136\u540e \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a ... # include < carla / client / Client . h > ... int main ( int argc , const char * argv [ ] ) { std : : string host ; uint16 _ t port ; std : : tie ( host , port ) = ParseArguments ( argc , argv ) ; ... / / \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a auto client = cc : : Client ( host , port ) ; client . SetTimeout ( 40s ) ; \u52a0\u8f7d \u5730\u56fe \u73b0\u5728 \u8ba9 \u6211\u4eec \u52a0\u8f7d \u4e00\u4e2a \u968f\u673a \u9009\u62e9 \u7684 \u5730\u56fe \uff1a / / \u521d\u59cb \u521d\u59cb\u5316 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 std : : mt19937 _ 64 rng ( ( std : : random _ device ( ) ) ( ) ) ; ... auto town _ name = RandomChoice ( client . GetAvailableMaps ( ) , rng ) ; std : : cout < < \" Loading world : \" < < town _ name < < std : : endl ; auto world = client . LoadWorld ( town _ name ) ; \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u5c06 \u83b7\u53d6 \u84dd \u56fe\u5e93 \uff0c \u8fc7\u6ee4 \u8f66\u8f86 \u5e76 \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u7684 \u8f66\u8f86 \u84dd\u56fe \uff1a auto blueprint _ library = world . GetBlueprintLibrary ( ) ; auto vehicles = blueprint _ library - > Filter ( \" vehicle \" ) ; auto blueprint = RandomChoice ( * vehicles , rng ) ; \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u627e\u5230 \u4e00\u4e2a \u4f4d\u7f6e \uff0c \u4ece \u5730\u56fe \u4e0a \u7684 \u751f\u6210 \u70b9 \u751f\u6210 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u83b7\u5f97 \u4e00\u4e2a \u6307\u5411 \u5730\u56fe \u5bf9\u8c61 \u7684 \u6307\u9488 \u5f15\u7528 \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u751f\u6210 \u70b9 \uff08 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u521d\u59cb \u521d\u59cb\u5316 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff09 \uff1a auto map = world . GetMap ( ) ; auto transform = RandomChoice ( map - > GetRecommendedSpawnPoints ( ) , rng ) ; \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \u548c \u751f\u6210 \u4f4d\u7f6e \uff0c \u6211\u4eec \u73b0\u5728 \u53ef\u4ee5 \u4f7f\u7528 world . SpawnActor ( ... ) \u65b9\u6cd5 \u751f\u6210 \u8f66\u8f86 \u3002 auto actor = world . SpawnActor ( blueprint , transform ) ; std : : cout < < \" Spawned \" < < actor - > GetDisplayId ( ) < < ' \\ n ' ; / / \u68c0\u7d22 \u6307\u5411 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u6307\u9488 auto vehicle = boost : : static _ pointer _ cast < cc : : Vehicle > ( actor ) ; \u5e94\u7528 \u63a7\u5236 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4f7f\u7528 ApplyControl ( ... ) \u65b9\u6cd5 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u4e00\u4e9b \u63a7\u5236 \u6765 \u79fb\u52a8 \u5b83 \uff1a cc : : Vehicle : : Control control ; control . throttle = 1.0 f ; vehicle - > ApplyControl ( control ) ; \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u91cd\u65b0 \u5b9a\u4f4d \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u5728 \u5730\u56fe \u4e0a \u770b\u5230 \u6211\u4eec \u65b0 \u751f\u6210 \u7684 \u8f66\u8f86 \uff1a auto spectator = world . GetSpectator ( ) ; / / \u8c03\u6574 \u53d8\u6362 \u6765\u770b transform . location + = 32.0 f * transform . GetForwardVector ( ) ; transform . location . z + = 2.0 f ; transform . rotation . yaw + = 180.0 f ; transform . rotation . pitch = - 15.0 f ; / / \u73b0\u5728 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53d8\u6362 spectator - > SetTransform ( transform ) ; \u6211\u4eec \u8fd8 \u5c06 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5173\u95ed \u4e4b\u524d \uff0c \u8ba9 \u8be5 \u8fc7\u7a0b \u4f11\u7720 10 \u79d2 \uff0c \u4ee5 \u89c2\u5bdf \u6a21\u62df \u8fc7\u7a0b \uff1a std : : this _ thread : : sleep _ for ( 10s ) ; \u5982\u679c \u60a8 \u5e0c\u671b \u5728 \u6267\u884c \u5176\u4ed6 \u547d\u4ee4 \u65f6 \u4fdd\u6301 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6253\u5f00 \uff0c \u8bf7 \u521b\u5efa \u4e00\u4e2a \u6e38\u620f \u5faa\u73af \u3002 \u73b0\u5728 \uff0c \u60a8 \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u4e00\u5f20 \u5730\u56fe \u5e76 \u751f\u6210 \u4e86 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u3002 \u4e3a\u4e86 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63a2\u7d22 C++ API \uff0c \u6784\u5efa Doxygen \u6587\u6863 \u5e76 \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 \u5b83 \u3002 \u8981 \u5728 Carla \u5b58\u50a8 \u5e93 \u4e4b\u5916 \u7684 \u53e6 \u4e00\u4e2a \u4f4d\u7f6e \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8bf7 \u7f16\u8f91 Makefile \u7684 \u524d 5 \u884c \uff0c \u4ee5 \u5f15\u7528 / build \u76ee\u5f55 \u548c Carla \u6784\u5efa \u4f4d\u7f6e \u7684 \u6b63\u786e \u4f4d\u7f6e \uff1a CARLADIR = $ ( CURDIR ) / .. / .. BUILDDIR = $ ( CURDIR ) / build BINDIR = $ ( CURDIR ) / bin INSTALLDIR = $ ( CURDIR ) / libcarla - install TOOLCHAIN = $ ( CURDIR ) / ToolChain . cmake","title":"C++ \u5ba2\u6237\u7aef \u793a\u4f8b"},{"location":"adv_cpp_client/#c","text":"\u8981 \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \uff0c \u60a8 \u9700\u8981 \u5b89\u88c5 make \u3002 \u5728 \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6784\u5efa Carla \uff0c \u5e76 \u6309\u7167 \u60a8 \u5e73\u53f0 \u7684 \u76f8\u5173 \u6784\u5efa \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u822a \u5230 Carla \u5b58\u50a8 \u5e93\u4e2d \u7684 Examples / CppClient \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u3002 \u60a8 \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u627e\u5230 \u4e00\u4e2a Makefile \u3002 \u8981 \u5728 Linux \u4e2d \u6784\u5efa \u5e76 \u8fd0\u884c \u5b83 \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u4e0b \u6267\u884c make run \u3002 \u5728 Windows \u4e2d \uff0c \u5728 \u540c\u4e00 \u76ee\u5f55 \u4e2d \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a CMakeLists . txt \u7684 \u6587\u4ef6 \uff0c \u5e76 \u6dfb\u52a0 \u6b64 \u6587\u4ef6 \u4e2d \u7684 \u5185\u5bb9 \uff0c \u7136\u540e \u8fd0\u884c cmake \u3002 \u8fd9\u4e2a C++ \u793a\u4f8b \u5c06 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u751f\u6210 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u5728 \u9500\u6bc1 \u548c \u7ec8\u6b62 \u8f66\u8f86 \u4e4b\u524d \u5bf9 \u5176 \u5e94\u7528 \u547d\u4ee4 \u3002","title":"C++ \u5ba2\u6237\u7aef \u793a\u4f8b"},{"location":"adv_cpp_client/#_1","text":"\u5bf9\u4e8e \u8fd9\u4e2a \u4f8b\u5b50 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u51e0\u4e2a \u4e0d\u540c \u7684 Carla \u7c7b \uff0c \u56e0\u6b64 \u6211\u4eec \u9700\u8981 \u5305\u542b Carla \u5e93\u4e2d \u7684 \u76f8\u5173 \u6587\u4ef6 \u5934\u6587\u4ef6 \uff0c \u5e76 \u5305\u542b \u6211\u4eec \u5c06 \u4f7f\u7528 \u7684 \u4efb\u4f55 \u6807\u51c6 \u5e93 \uff1a # include < iostream > # include < random > # include < sstream > # include < stdexcept > # include < string > # include < thread > # include < tuple > # include < carla / client / ActorBlueprint . h > # include < carla / client / BlueprintLibrary . h > # include < carla / client / Client . h > # include < carla / client / Map . h > # include < carla / client / Sensor . h > # include < carla / client / TimeoutException . h > # include < carla / client / World . h > # include < carla / geom / Transform . h > # include < carla / image / ImageIO . h > # include < carla / image / ImageView . h > # include < carla / sensor / data / Image . h >","title":"\u5305\u62ec \u76f8\u5173 \u7684 \u5934\u6587\u4ef6"},{"location":"adv_cpp_client/#c_1","text":"\u5305\u62ec carla / client / Client . h \uff0c \u7136\u540e \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a ... # include < carla / client / Client . h > ... int main ( int argc , const char * argv [ ] ) { std : : string host ; uint16 _ t port ; std : : tie ( host , port ) = ParseArguments ( argc , argv ) ; ... / / \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a auto client = cc : : Client ( host , port ) ; client . SetTimeout ( 40s ) ;","title":"\u5c06 C++ \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1\u5668"},{"location":"adv_cpp_client/#_2","text":"\u73b0\u5728 \u8ba9 \u6211\u4eec \u52a0\u8f7d \u4e00\u4e2a \u968f\u673a \u9009\u62e9 \u7684 \u5730\u56fe \uff1a / / \u521d\u59cb \u521d\u59cb\u5316 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 std : : mt19937 _ 64 rng ( ( std : : random _ device ( ) ) ( ) ) ; ... auto town _ name = RandomChoice ( client . GetAvailableMaps ( ) , rng ) ; std : : cout < < \" Loading world : \" < < town _ name < < std : : endl ; auto world = client . LoadWorld ( town _ name ) ;","title":"\u52a0\u8f7d \u5730\u56fe"},{"location":"adv_cpp_client/#_3","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u5c06 \u83b7\u53d6 \u84dd \u56fe\u5e93 \uff0c \u8fc7\u6ee4 \u8f66\u8f86 \u5e76 \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u7684 \u8f66\u8f86 \u84dd\u56fe \uff1a auto blueprint _ library = world . GetBlueprintLibrary ( ) ; auto vehicles = blueprint _ library - > Filter ( \" vehicle \" ) ; auto blueprint = RandomChoice ( * vehicles , rng ) ; \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u627e\u5230 \u4e00\u4e2a \u4f4d\u7f6e \uff0c \u4ece \u5730\u56fe \u4e0a \u7684 \u751f\u6210 \u70b9 \u751f\u6210 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u83b7\u5f97 \u4e00\u4e2a \u6307\u5411 \u5730\u56fe \u5bf9\u8c61 \u7684 \u6307\u9488 \u5f15\u7528 \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u751f\u6210 \u70b9 \uff08 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u521d\u59cb \u521d\u59cb\u5316 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff09 \uff1a auto map = world . GetMap ( ) ; auto transform = RandomChoice ( map - > GetRecommendedSpawnPoints ( ) , rng ) ; \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \u548c \u751f\u6210 \u4f4d\u7f6e \uff0c \u6211\u4eec \u73b0\u5728 \u53ef\u4ee5 \u4f7f\u7528 world . SpawnActor ( ... ) \u65b9\u6cd5 \u751f\u6210 \u8f66\u8f86 \u3002 auto actor = world . SpawnActor ( blueprint , transform ) ; std : : cout < < \" Spawned \" < < actor - > GetDisplayId ( ) < < ' \\ n ' ; / / \u68c0\u7d22 \u6307\u5411 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u6307\u9488 auto vehicle = boost : : static _ pointer _ cast < cc : : Vehicle > ( actor ) ;","title":"\u968f\u673a \u9009\u62e9 \u4e00\u8f86\u8f66"},{"location":"adv_cpp_client/#_4","text":"\u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4f7f\u7528 ApplyControl ( ... ) \u65b9\u6cd5 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u4e00\u4e9b \u63a7\u5236 \u6765 \u79fb\u52a8 \u5b83 \uff1a cc : : Vehicle : : Control control ; control . throttle = 1.0 f ; vehicle - > ApplyControl ( control ) ; \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u91cd\u65b0 \u5b9a\u4f4d \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u5728 \u5730\u56fe \u4e0a \u770b\u5230 \u6211\u4eec \u65b0 \u751f\u6210 \u7684 \u8f66\u8f86 \uff1a auto spectator = world . GetSpectator ( ) ; / / \u8c03\u6574 \u53d8\u6362 \u6765\u770b transform . location + = 32.0 f * transform . GetForwardVector ( ) ; transform . location . z + = 2.0 f ; transform . rotation . yaw + = 180.0 f ; transform . rotation . pitch = - 15.0 f ; / / \u73b0\u5728 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53d8\u6362 spectator - > SetTransform ( transform ) ; \u6211\u4eec \u8fd8 \u5c06 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5173\u95ed \u4e4b\u524d \uff0c \u8ba9 \u8be5 \u8fc7\u7a0b \u4f11\u7720 10 \u79d2 \uff0c \u4ee5 \u89c2\u5bdf \u6a21\u62df \u8fc7\u7a0b \uff1a std : : this _ thread : : sleep _ for ( 10s ) ; \u5982\u679c \u60a8 \u5e0c\u671b \u5728 \u6267\u884c \u5176\u4ed6 \u547d\u4ee4 \u65f6 \u4fdd\u6301 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6253\u5f00 \uff0c \u8bf7 \u521b\u5efa \u4e00\u4e2a \u6e38\u620f \u5faa\u73af \u3002 \u73b0\u5728 \uff0c \u60a8 \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u4e00\u5f20 \u5730\u56fe \u5e76 \u751f\u6210 \u4e86 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u3002 \u4e3a\u4e86 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63a2\u7d22 C++ API \uff0c \u6784\u5efa Doxygen \u6587\u6863 \u5e76 \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 \u5b83 \u3002 \u8981 \u5728 Carla \u5b58\u50a8 \u5e93 \u4e4b\u5916 \u7684 \u53e6 \u4e00\u4e2a \u4f4d\u7f6e \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8bf7 \u7f16\u8f91 Makefile \u7684 \u524d 5 \u884c \uff0c \u4ee5 \u5f15\u7528 / build \u76ee\u5f55 \u548c Carla \u6784\u5efa \u4f4d\u7f6e \u7684 \u6b63\u786e \u4f4d\u7f6e \uff1a CARLADIR = $ ( CURDIR ) / .. / .. BUILDDIR = $ ( CURDIR ) / build BINDIR = $ ( CURDIR ) / bin INSTALLDIR = $ ( CURDIR ) / libcarla - install TOOLCHAIN = $ ( CURDIR ) / ToolChain . cmake","title":"\u5e94\u7528 \u63a7\u5236"},{"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 \u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \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 \u540e\u7eed \u6b65\u9aa4 \u5206\u6790 \u95ee\u9898 \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 \u4f7f\u7528 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 \u5206\u6790 UOpenDriveToMap : : GenerateTile ( ) \u751f\u6210 \u6bcf \u4e00\u4e2a \u74e6\u7247 \uff0c \u8c03\u7528 GenerateAll ( ) \u51fd\u6570 \uff0c \u8fdb\u884c \u9053\u8def \u7f51\u683c \u3001 \u8f66\u9053 \u7ebf \u3001 \u751f\u6210 \u70b9 \u3001 \u5730\u5f62 \u3001 \u6570\u76ee \u4f4d\u7f6e \u3001 \u751f\u6210 \u5b8c\u6210 \u7b49 \u6b65\u9aa4 \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 \u79fb\u9664 void UOpenDriveToMap : : GenerateTile ( ) \u51fd\u6570 \u4e2d \u7684 / / RemoveFromRoot ( ) ; \u8bed\u53e5 \uff0c \u8be5 \u8bed\u53e5 \u6e05\u7406 FilePath \u53d8\u91cf \u5bfc\u81f4 \u4e0b \u4e00\u6b21 \u74e6\u7247 \u751f\u6210 \u65f6 FilePath \u53d8\u91cf \u4e71\u7801 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u5927 \u5730\u56fe \u53ea \u751f\u6210 \u4e00\u4e2a \u74e6\u7247 \u7684 \u95ee\u9898 \u3002 \u53c2\u8003 \uff1a UE \u4e2d \u7684 Commandlet \u89e3\u8bfb \u3002","title":"Adv digital twin"},{"location":"adv_digital_twin/#_1","text":"\u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \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 \u540e\u7eed \u6b65\u9aa4 \u5206\u6790 \u95ee\u9898 \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/#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":"\u4f7f\u7528 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":"UOpenDriveToMap : : GenerateTile ( ) \u751f\u6210 \u6bcf \u4e00\u4e2a \u74e6\u7247 \uff0c \u8c03\u7528 GenerateAll ( ) \u51fd\u6570 \uff0c \u8fdb\u884c \u9053\u8def \u7f51\u683c \u3001 \u8f66\u9053 \u7ebf \u3001 \u751f\u6210 \u70b9 \u3001 \u5730\u5f62 \u3001 \u6570\u76ee \u4f4d\u7f6e \u3001 \u751f\u6210 \u5b8c\u6210 \u7b49 \u6b65\u9aa4 \u3002","title":"\u5206\u6790 "},{"location":"adv_digital_twin/#_9","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 \u79fb\u9664 void UOpenDriveToMap : : GenerateTile ( ) \u51fd\u6570 \u4e2d \u7684 / / RemoveFromRoot ( ) ; \u8bed\u53e5 \uff0c \u8be5 \u8bed\u53e5 \u6e05\u7406 FilePath \u53d8\u91cf \u5bfc\u81f4 \u4e0b \u4e00\u6b21 \u74e6\u7247 \u751f\u6210 \u65f6 FilePath \u53d8\u91cf \u4e71\u7801 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u5927 \u5730\u56fe \u53ea \u751f\u6210 \u4e00\u4e2a \u74e6\u7247 \u7684 \u95ee\u9898 \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 \u5bf9\u7167 \u536b\u661f \u5730\u56fe \uff08 \u6bd4\u5982 \u767e\u5ea6 \u5730\u56fe \u7684 \u536b\u661f \u5730\u56fe \uff09 \u8fdb\u884c \u7ed8\u5236 \uff1a \u901a\u8fc7 \u5b9e\u666f \u5730\u56fe \u6570\u51fa \u697c \u7684 \u5c42\u6570 \uff1a \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 \u624b\u673a APP \u8fdb\u884c \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u4e3a\u4e86 \u5728 \u79fb\u52a8 \u73af\u5883 \u4e0b \u8fdb\u884c \u65b9\u4fbf \u7684 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \uff0c \u4e0b\u8f7d \u624b\u673a \u8f6f\u4ef6 \u673a\u8f6f\u4ef6 \u624b\u673a\u8f6f\u4ef6 StreetComplete \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 \u5bf9\u7167 \u536b\u661f \u5730\u56fe \uff08 \u6bd4\u5982 \u767e\u5ea6 \u5730\u56fe \u7684 \u536b\u661f \u5730\u56fe \uff09 \u8fdb\u884c \u7ed8\u5236 \uff1a \u901a\u8fc7 \u5b9e\u666f \u5730\u56fe \u6570\u51fa \u697c \u7684 \u5c42\u6570 \uff1a","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_edit_openstreetmap/#app","text":"\u4e3a\u4e86 \u5728 \u79fb\u52a8 \u73af\u5883 \u4e0b \u8fdb\u884c \u65b9\u4fbf \u7684 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \uff0c \u4e0b\u8f7d \u624b\u673a \u8f6f\u4ef6 \u673a\u8f6f\u4ef6 \u624b\u673a\u8f6f\u4ef6 StreetComplete \u3002","title":"\u624b\u673a APP \u8fdb\u884c \u5730\u56fe\u7f16\u8f91"},{"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 - nullrhi \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u6570\u636e \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 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9\u5e94 \u4e00\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 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c GPU \u7684 \u6570\u91cf \u4e00\u6837 \u591a \u7684 \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 - nullrhi \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u6570\u636e \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 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9\u5e94 \u4e00\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 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c GPU \u7684 \u6570\u91cf \u4e00\u6837 \u591a \u7684 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4e09\u7ef4 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4e09\u7ef4 \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 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u5957 \u63a5\u5b57 \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 \uff08 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u63a7\u4ef6 \uff09 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u63a7\u4ef6 ( 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 \u6ce8\u610f \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 \u4eff\u771f \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 \u4eff\u771f \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 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u5957 \u63a5\u5b57 \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 \uff08 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u63a7\u4ef6 \uff09 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u63a7\u4ef6 ( 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 \u6ce8\u610f \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 \u4eff\u771f \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 \u4eff\u771f \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 \u8bb0\u5f55 \u6587\u4ef6 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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\u5236 \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 \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 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8bb0\u5f55 \u6587\u4ef6 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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\u5236 \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 \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 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e\u8005 "},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \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 \u4ee3\u7406 \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 \u670d\u52a1 \u670d\u52a1\u7aef \u7a97\u53e3 \u4f1a \u8fdb\u5165 \u9ed1\u5c4f \uff0c \u4f46\u662f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef pygame \u4f9d\u7136 \u4f1a \u6e32\u67d3 \u3002 \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 \u670d\u52a1 \u670d\u52a1\u7aef \u4e0d \u6e32\u67d3 \uff0c \u9ed1\u5c4f \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c pygame \u4f9d\u7136 \u4f1a \u6e32\u67d3 \uff0c pygame \u4e5f \u9700\u8981 \u4f7f\u7528 no - render \u8bbe\u7f6e \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 \u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \u800c \u53e6 \u4e00\u79cd \u5728 Carla \u5b98\u65b9 \u6587\u6863 \u4e2d\u672a \u88ab \u63d0\u53ca \u7684 \u65b9\u5f0f \u5c31\u662f -- nullrhi \u3002 \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u56fe\u5f62 \u5f62\u5b66 \u56fe\u5f62\u5b66 \u4e2d \uff0c RHI \uff08 Rendering Hardware Interface \uff09 \u662f \u4e00\u79cd \u786c\u4ef6 \u62bd\u8c61 \u5c42 \uff0c \u7528\u4e8e \u5c01\u88c5 \u4e0d\u540c \u56fe\u5f62 \u786c\u4ef6 \uff08 GPU \uff09 \u7684 \u5e95\u5c42 \u7ec6\u8282 \uff0c \u4f7f\u5f97 \u56fe\u5f62 \u6e32\u67d3 \u5f15\u64ce \u53ef\u4ee5 \u4e0e \u5404\u79cd \u4e0d\u540c \u7c7b\u578b \u7684 \u786c\u4ef6 \u534f\u540c \u540c\u5de5 \u5de5\u4f5c \u534f\u540c\u5de5\u4f5c \u3002 RHI \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u56fe\u5f62 \u8d44\u6e90 \u3001 \u6267\u884c \u6e32\u67d3 \u547d\u4ee4 \u7b49 \u5e95\u5c42 \u64cd\u4f5c \uff0c \u4f7f\u5f97 \u5f00\u53d1 \u5f00\u53d1\u8005 \u53ef\u4ee5 \u7f16\u5199 \u4e0e \u5177\u4f53 \u786c\u4ef6 \u65e0\u5173 \u7684 \u56fe\u5f62 \u6e32\u67d3 \u4ee3\u7801 \u3002 \u800c \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 -- nullrhi \u53c2\u6570 \u5219 \u662f \u4e00\u79cd \u7279\u6b8a \u7684 \u6a21\u5f0f \uff0c \u8868\u793a \u4f7f\u7528 Null Rendering Hardware Interface \uff0c \u5373\u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \u3002 \u5728 \u8fd9\u79cd \u6a21\u5f0f \u4e0b \uff0c Carla \u5c06 \u4e0d\u4f1a \u6267\u884c \u5b9e\u9645 \u7684 \u56fe\u5f62 \u6e32\u67d3 \u64cd\u4f5c \uff0c \u4ece\u800c \u51cf\u8f7b \u4e86 \u4e0e \u56fe\u5f62 \u76f8\u5173 \u7684 \u8ba1\u7b97 \u8d1f\u62c5 \u3002 \u8fd9 \u5bf9\u4e8e \u4e00\u4e9b \u7279\u6b8a \u7684 \u4eff\u771f \u573a\u666f \uff0c \u6bd4\u5982 \u9700\u8981 \u5728 \u540e\u53f0 \u8fd0\u884c \u4eff\u771f \u6216 \u8fdb\u884c \u6027\u80fd \u6d4b\u8bd5 \u65f6 \uff0c \u662f \u975e\u5e38 \u6709\u7528 \u7684 \u3002 \u4f7f\u7528 -- nullrhi \u53c2\u6570 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c manual _ control . py \u65f6 pygame \u9ed1\u5c4f \u3002 nullrhi \u53ea \u9002\u7528 \u4e8e \u591a GPU \u6a21\u5f0f \uff0c \u53ef\u4ee5 \u53ea\u6709 \u4e00\u4e2a GPU \u8fdb\u884c \u6e32\u67d3 \uff0c \u800c \u5176\u4ed6 GPU \u4f7f\u7528 nullrhi \u4e0d \u8fdb\u884c \u6e32\u67d3 \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":"Adv rendering options"},{"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 \u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \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 \u4ee3\u7406 \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 \u670d\u52a1 \u670d\u52a1\u7aef \u7a97\u53e3 \u4f1a \u8fdb\u5165 \u9ed1\u5c4f \uff0c \u4f46\u662f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef pygame \u4f9d\u7136 \u4f1a \u6e32\u67d3 \u3002 \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 \u670d\u52a1 \u670d\u52a1\u7aef \u4e0d \u6e32\u67d3 \uff0c \u9ed1\u5c4f \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c pygame \u4f9d\u7136 \u4f1a \u6e32\u67d3 \uff0c pygame \u4e5f \u9700\u8981 \u4f7f\u7528 no - render \u8bbe\u7f6e \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","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 "},{"location":"adv_rendering_options/#_9","text":"\u800c \u53e6 \u4e00\u79cd \u5728 Carla \u5b98\u65b9 \u6587\u6863 \u4e2d\u672a \u88ab \u63d0\u53ca \u7684 \u65b9\u5f0f \u5c31\u662f -- nullrhi \u3002 \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u56fe\u5f62 \u5f62\u5b66 \u56fe\u5f62\u5b66 \u4e2d \uff0c RHI \uff08 Rendering Hardware Interface \uff09 \u662f \u4e00\u79cd \u786c\u4ef6 \u62bd\u8c61 \u5c42 \uff0c \u7528\u4e8e \u5c01\u88c5 \u4e0d\u540c \u56fe\u5f62 \u786c\u4ef6 \uff08 GPU \uff09 \u7684 \u5e95\u5c42 \u7ec6\u8282 \uff0c \u4f7f\u5f97 \u56fe\u5f62 \u6e32\u67d3 \u5f15\u64ce \u53ef\u4ee5 \u4e0e \u5404\u79cd \u4e0d\u540c \u7c7b\u578b \u7684 \u786c\u4ef6 \u534f\u540c \u540c\u5de5 \u5de5\u4f5c \u534f\u540c\u5de5\u4f5c \u3002 RHI \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u56fe\u5f62 \u8d44\u6e90 \u3001 \u6267\u884c \u6e32\u67d3 \u547d\u4ee4 \u7b49 \u5e95\u5c42 \u64cd\u4f5c \uff0c \u4f7f\u5f97 \u5f00\u53d1 \u5f00\u53d1\u8005 \u53ef\u4ee5 \u7f16\u5199 \u4e0e \u5177\u4f53 \u786c\u4ef6 \u65e0\u5173 \u7684 \u56fe\u5f62 \u6e32\u67d3 \u4ee3\u7801 \u3002 \u800c \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 -- nullrhi \u53c2\u6570 \u5219 \u662f \u4e00\u79cd \u7279\u6b8a \u7684 \u6a21\u5f0f \uff0c \u8868\u793a \u4f7f\u7528 Null Rendering Hardware Interface \uff0c \u5373\u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \u3002 \u5728 \u8fd9\u79cd \u6a21\u5f0f \u4e0b \uff0c Carla \u5c06 \u4e0d\u4f1a \u6267\u884c \u5b9e\u9645 \u7684 \u56fe\u5f62 \u6e32\u67d3 \u64cd\u4f5c \uff0c \u4ece\u800c \u51cf\u8f7b \u4e86 \u4e0e \u56fe\u5f62 \u76f8\u5173 \u7684 \u8ba1\u7b97 \u8d1f\u62c5 \u3002 \u8fd9 \u5bf9\u4e8e \u4e00\u4e9b \u7279\u6b8a \u7684 \u4eff\u771f \u573a\u666f \uff0c \u6bd4\u5982 \u9700\u8981 \u5728 \u540e\u53f0 \u8fd0\u884c \u4eff\u771f \u6216 \u8fdb\u884c \u6027\u80fd \u6d4b\u8bd5 \u65f6 \uff0c \u662f \u975e\u5e38 \u6709\u7528 \u7684 \u3002 \u4f7f\u7528 -- nullrhi \u53c2\u6570 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c manual _ control . py \u65f6 pygame \u9ed1\u5c4f \u3002 nullrhi \u53ea \u9002\u7528 \u4e8e \u591a GPU \u6a21\u5f0f \uff0c \u53ef\u4ee5 \u53ea\u6709 \u4e00\u4e2a GPU \u8fdb\u884c \u6e32\u67d3 \uff0c \u800c \u5176\u4ed6 GPU \u4f7f\u7528 nullrhi \u4e0d \u8fdb\u884c \u6e32\u67d3 \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":"\u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 "},{"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 \u4f9d\u8d56 \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":"Adv rss"},{"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 \u4f9d\u8d56 \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 SUMO TraCI \u63a5\u53e3 \u6587\u6863 \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":"Adv sumo"},{"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 SUMO TraCI \u63a5\u53e3 \u6587\u6863","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 \u3002 \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 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5b9e\u65f6 \u65f6\u95f4 \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 \u3002 \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 \u6bd4\u5982 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u59cb\u7ec8 \u4e3a 1 \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 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \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 # \u8bbe\u7f6e \u4e3a \u53ef\u53d8 \u6b65\u957f world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 0 \u8868\u793a \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 2 \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 \u6b65 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 1 \u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / util / config . py \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 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 \u64ad\u653e \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\u65b0 \u64ad\u653e \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 \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 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \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 # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f 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 \u8fd9\u4e2a \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 PythonAPI / util / config . py \u811a\u672c \u3002 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 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u5e76 \u68c0\u7d22 \u8be5 \u8282\u62cd \u7684 \u5feb\u7167 \u3002 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u6bcf\u6b21 \u63a5\u6536 \u5230 \u65b0 \u5feb\u7167 \u65f6 \u8c03\u7528 \u5b83 \u3002 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":"Adv synchrony timestep"},{"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 \u3002 \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 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_2","text":"\u5b9e\u65f6 \u65f6\u95f4 \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 \u3002 \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 \u6bd4\u5982 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u59cb\u7ec8 \u4e3a 1 \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 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \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 # \u8bbe\u7f6e \u4e3a \u53ef\u53d8 \u6b65\u957f world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 0 \u8868\u793a \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 2 \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 \u6b65 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 1 \u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / util / config . py \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 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 \u64ad\u653e \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\u65b0 \u64ad\u653e \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 \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 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \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 # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f 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 \u8fd9\u4e2a \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 PythonAPI / util / config . py \u811a\u672c \u3002 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 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u5e76 \u68c0\u7d22 \u8be5 \u8282\u62cd \u7684 \u5feb\u7167 \u3002 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u6bcf\u6b21 \u63a5\u6536 \u5230 \u65b0 \u5feb\u7167 \u65f6 \u8c03\u7528 \u5b83 \u3002 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 \u4ee3\u7406 \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ee3\u7406 \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 \u4ee3\u7406 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 . \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 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 \u8def\u5f84 \u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u8def\u5f84 \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 \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u8def\u5f84 \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 \u8003\u8651 \u56e0\u7d20 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 \u884c\u4eba - \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f \u4e00\u4e2a \u4e0d \u9700\u8981 \u88ab \u9500\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1b \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u9500\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 \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # \u79bb \u82f1\u96c4 \u8f66\u8f86 \u8d85\u8fc7 2 \u516c\u91cc \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06\u4f1a \u4f11\u7720 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 20 \u7c73 \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":"Adv traffic manager"},{"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 \u4ee3\u7406 \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ee3\u7406 \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":"\u4ee3\u7406 \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 \u4ee3\u7406 \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":"\u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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/#_12","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":"\u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 "},{"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/#_13","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/#_14","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 \u8def\u5f84 \u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u8def\u5f84 \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 \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u8def\u5f84 \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/#_15","text":"","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 "},{"location":"adv_traffic_manager/#_16","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 \u884c\u4eba - \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 \u8003\u8651 \u56e0\u7d20 "},{"location":"adv_traffic_manager/#_17","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/#_18","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/#_19","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f \u4e00\u4e2a \u4e0d \u9700\u8981 \u88ab \u9500\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1b \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u9500\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/#_20","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/#_21","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/#_22","text":"","title":"\u8fd0\u884c \u591a\u4e2a \u4ea4\u901a\u7ba1\u7406 \u5668 "},{"location":"adv_traffic_manager/#_23","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/#_24","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/#_25","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/#_26","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/#_27","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/#_28","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/#_29","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/#_30","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 \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # \u79bb \u82f1\u96c4 \u8f66\u8f86 \u8d85\u8fc7 2 \u516c\u91cc \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06\u4f1a \u4f11\u7720 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 20 \u7c73 \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":"benchmark_creating/","text":"\u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u5c55\u793a \uff1a \u5982\u4f55 \u5b9a\u4e49 \u4e00\u4e2a \u5177\u6709 \u524d\u5411 \u7b56\u7565 \u7684 \u7b80\u5355 \u4ee3\u7406 \u5982\u4f55 \u5b9a\u4e49 \u4e00\u4e2a \u57fa\u672c \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u5b9a\u4e49 \u5b9a\u4e49 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u6784\u5efa \u5b9e\u9a8c \u9884\u671f \u7ed3\u679c \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u4e0e \u5176\u4ed6 \u4e24\u4e2a \u6a21\u5757 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u4ee3\u7406 \u6a21\u5757 \u662f \u53e6 \u4e00\u4e2a \u6a21\u5757 \uff08 \u5b9e\u9a8c \u5957\u4ef6 \uff09 \u4e2d \u6267\u884c \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8fd9 \u4e24\u4e2a \u6a21\u5757 \u90fd \u662f \u62bd\u8c61 \u62bd\u8c61\u7c7b \uff0c \u5fc5\u987b \u7531 \u7528\u6237 \u91cd\u65b0 \u5b9a\u4e49 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u6458\u5f55 \u662f \u5982\u4f55 \u5e94\u7528 \u9a7e\u9a76 \u57fa\u51c6 \u7684 \u793a\u4f8b \uff1b # \u6211\u4eec \u5b9e\u4f8b \u5316 \u4e86 \u4e00\u4e2a \u8f6c\u53d1 \u4ee3\u7406 \uff0c \u8fd9\u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u7b56\u7565 \uff0c # \u53ea \u9700 \u5c06 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u8bbe\u7f6e \u4e3a 0.9 \uff0c \u5c06 \u8f6c\u5411 \u8bbe\u7f6e \u4e3a \u96f6 agent = ForwardAgent ( ) # \u6211\u4eec \u5b9e\u4f8b \u5316 \u4e86 \u4e00\u4e2a \u5b9e\u9a8c \u5957\u4ef6 \u3002 # \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u4e00\u7ec4 \u5c06 \u5728 \u6b64 \u57fa\u51c6 \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u7684 \u5b9e\u9a8c \u3002 experiment _ suite = BasicExperimentSuite ( city _ name ) # \u73b0\u5728 \u5b9e\u9645 \u8fd0\u884c driving _ benchmark \u3002 # \u9664\u4e86 \u4ee3\u7406 \u548c \u5b9e\u9a8c \u5957\u4ef6 \u4e4b\u5916 \uff0c \u6211\u4eec \u8fd8 \u5e94\u8be5 \u53d1\u9001 \u57ce\u5e02 \u540d\u79f0 \uff08 Town01 \uff0c Town02 \uff09 \u65e5\u5fd7 run _ driving _ benchmark ( agent , experiment _ suite , city _ name , log _ name , continue _ experiment , host , port ) \u8fd9 \u6bb5 \u6458\u5f55 \u4e4b\u540e \uff0c \u6709 \u4e24\u4e2a \u7c7b \u9700\u8981 \u5b9a\u4e49 \u3002 ForwardAgent ( ) \u548c BasicExperimentSuite ( ) \u3002 \u4e4b\u540e \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u201c run _ driving _ benchmark \u201d \u51fd\u6570 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u6267\u884c \u6458\u8981 \u3001 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u5b58\u50a8 \u5728 json \u6587\u4ef6 \u4e2d \u6253\u5370 \u5e76\u6253\u5370 \u5230 \u5c4f\u5e55 \u4e0a \u3002 \u5b9a\u4e49 \u4ee3\u7406 \u88ab \u6d4b\u8bd5 \u7684 \u4ee3\u7406 \u5fc5\u987b \u7ee7\u627f \u57fa\u7c7b Agent \u3002 \u6211\u4eec \u5148 \u4ece \u6d3e\u751f \u4e00\u4e2a \u7b80\u5355 \u7684 \u8f6c\u53d1 \u4ee3\u7406 \u5f00\u59cb \uff1a from carla . agent . agent import Agent from carla . client import VehicleControl class ForwardAgent ( Agent ) : \u4e3a\u4e86 \u8bc4\u4f30 \u5176 \u6027\u80fd \uff0c ForwardAgent \u6d3e\u751f \u6d3e\u751f\u7c7b \u5fc5\u987b \u91cd\u65b0 \u5b9a\u4e49 run _ step \u51fd\u6570 \uff0c \u5982 \u4e0b\u9762 \u6458\u5f55 \u7684 \u90a3\u6837 \uff1a def run _ step ( self , measurements , sensor _ data , directions , target ) : \" \" \" \u5728 CARLA \u8f66\u8f86 \u4e2d \u8fd0\u884c \u63a7\u5236 \u6b65\u9aa4 \u7684 \u51fd\u6570 \u3002 \" \" \" control = VehicleControl ( ) control . throttle = 0.9 return control \u8be5 \u51fd\u6570 \u63a5\u6536 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u6d4b\u91cf \u503c \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ece CARLA \u6a21\u62df \u6a21\u62df\u5668 \u63a5\u6536 \u5230 \u7684 \u6574\u4e2a \u4e16\u754c \u72b6\u6001 \u3002 \u8fd9\u4e9b \u6d4b\u91cf \u503c \u5305\u542b \u4ee3\u7406 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u3001 \u52a8\u6001 \u5bf9\u8c61 \u4fe1\u606f \u7b49 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff1a \u6765\u81ea \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6d4b\u91cf \u6570\u636e \uff0c \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6216 RGB \u6444\u50cf \u6444\u50cf\u673a \u3002 \u65b9\u5411 \uff1a \u6765\u81ea \u9ad8\u7ea7 \u89c4\u5212 \u5668 \u7684 \u4fe1\u606f \u3002 \u5f53\u524d \uff0c \u89c4\u5212 \u5668 \u4ece \u4e0b\u5217 \u96c6\u5408 \u53d1\u9001 \u9ad8\u7ea7 \u547d\u4ee4 \uff1a \u76f4\u884c \u3001 \u53f3 \u884c \u3001 \u5de6 \u884c \u3001 \u65e0 \u884c \u3002 \u76ee\u6807 \u4f4d\u7f6e \uff1a \u76ee\u6807 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u6709 \u4e86 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \uff0c run _ step \u51fd\u6570 \u9884\u8ba1 \u4f1a \u8fd4\u56de \u4e00\u4e2a \u8f66\u8f86 \u63a7\u5236 \u6d88\u606f \uff0c \u5305\u542b \uff1a \u8f6c\u5411 \u503c \u3001 \u6cb9\u95e8 \u503c \u3001 \u5239\u8f66 \u503c \u7b49 \u3002 \u5b9a\u4e49 \u5b9e\u9a8c \u5957\u4ef6 \u8981 \u521b\u5efa \u5b9e\u9a8c \u5957\u4ef6 \u7c7b \uff0c \u60a8 \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u901a\u8fc7 \u7ee7\u627f ExperimentSuite \u57fa\u7c7b \u6765 \u521b\u5efa \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7c7b \u3002 \u5b9a\u4e49 \u8981 \u4f7f\u7528 \u7684 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u3002 \u6784\u5efa \u5b9e\u9a8c \u5bf9\u8c61 \u3002 \u5b9a\u4e49 \u5b9a\u4e49 \u7684 \u5b9e\u9a8c \u96c6 \u5fc5\u987b \u6d3e\u751f ExperimentSuite \u7c7b \uff0c \u5982 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u6240\u793a \uff1a from carla . agent _ benchmark . experiment import Experiment from carla . sensor import Camera from carla . settings import CarlaSettings from . experiment _ suite import ExperimentSuite class BasicExperimentSuite ( ExperimentSuite ) : \u5b9a\u4e49 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u7528\u6237 \u5fc5\u987b \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5929\u6c14 \u3002 \u5e94\u8be5 \u9009\u62e9 \u4e00\u7ec4 \u6d4b\u8bd5 \u5929\u6c14 \u548c \u4e00\u7ec4 \u8bad\u7ec3 \u5929\u6c14 \u3002 \u8fd9 \u88ab \u5b9a\u4e49 \u4e3a\u7c7b \u5c5e\u6027 \uff0c \u5982\u4e0b \u4f8b \u6240\u793a \uff1a @ property def train _ weathers ( self ) : return [ 1 ] @ property def test _ weathers ( self ) : return [ 1 ] \u6784\u5efa \u5b9e\u9a8c \u5b9e\u9a8c \u7531 \u4e00\u7ec4 \u59ff\u52bf \u5b9a\u4e49 \u7684 \u4efb\u52a1 \u7ec4\u6210 \u3002 \u8ba9 \u6211\u4eec \u4ece \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u57ce\u5e02 \u7684 \u59ff\u52bf \u5f00\u59cb \uff0c \u4ee5 Town01 \u4e3a\u4f8b \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u67e5\u770b \u6240\u6709 \u53ef\u80fd \u7684 \u4f4d\u7f6e \uff0c \u4e3a\u6b64 \uff0c \u5728 \u7ec8\u7aef \u4e2d \u8fd0\u884c CARLA \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u8fd0\u884c view _ start _ positions . py \uff1a python view _ start _ positions . py \u73b0\u5728 \u8ba9 \u6211\u4eec \u9009\u62e9 140 \u4f5c\u4e3a \u8d77\u59cb \u4f4d\u7f6e \uff0c 134 \u4f5c\u4e3a \u7ec8\u6b62 \u4f4d\u7f6e \u3002 \u8fd9 \u4e24\u4e2a \u4f4d\u7f6e \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 \uff1a python view _ start _ positions . py -- pos 140 , 134 -- no - labels \u6211\u4eec \u518d \u9009\u62e9 \u4e24\u4e2a \u59ff\u52bf \uff0c \u4e00\u4e2a \u7528\u4e8e \u76f4\u884c \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u7b80\u5355 \u8f6c\u5f2f \u3002 \u6b64\u5916 \uff0c \u6211\u4eec \u8fd8 \u4e3a Town02 \u9009\u62e9 \u4e09\u4e2a \u59ff\u52bf \uff1a \u56fe \uff1a \u6b64 \u57fa\u672c \u5b9e\u9a8c \u5957\u4ef6 \u793a\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u59ff\u52bf \u3002 \u59ff\u52bf \u662f \u76ee\u6807 \u5bfc\u5411 \u60c5\u8282 \u7684 \u5f00\u59cb \u548c \u7ed3\u675f \u4f4d\u7f6e \u7684 \u5143\u7ec4 \u3002 \u5f00\u59cb \u4f4d\u7f6e \u663e\u793a \u4e3a \u84dd\u8272 \uff0c \u7ed3\u675f \u4f4d\u7f6e \u663e\u793a \u4e3a \u7ea2\u8272 \u3002 \u5de6 \uff1a \u76f4\u7ebf \u59ff\u52bf \uff0c \u5176\u4e2d \u76ee\u6807 \u4e0e \u8d77\u59cb \u4f4d\u7f6e \u76f4\u7ebf \u8ddd\u79bb \u3002 \u4e2d \uff1a \u4e00\u4e2a \u8f6c\u5f2f \u60c5\u8282 \uff0c \u5176\u4e2d \u76ee\u6807 \u4e0e \u8d77\u70b9 \u76f8\u8ddd \u4e00\u4e2a \u8f6c\u5f2f \u3002 \u53f3 \uff1a \u4efb\u610f \u4f4d\u7f6e \uff0c \u76ee\u6807 \u8ddd\u79bb \u8d77\u59cb \u4f4d\u7f6e \u8f83 \u8fdc \uff0c \u901a\u5e38 \u8d85\u8fc7 \u4e00\u4e2a \u8f6c\u5f2f \u3002 \u6211\u4eec \u5c06 \u6bcf\u4e2a \u59ff\u52bf \u5b9a\u4e49 \u4e3a \u4e00\u9879 \u4efb\u52a1 \u3002 \u6b64\u5916 \uff0c \u6211\u4eec \u8fd8 \u4e3a \u6bcf\u4e2a \u4efb\u52a1 \u8bbe\u7f6e \u52a8\u6001 \u5bf9\u8c61 \u7684 \u6570\u91cf \uff0c \u5e76 \u91cd\u590d \u4efb\u610f \u4f4d\u7f6e \u4efb\u52a1 \uff0c \u4f7f \u5176 \u4e5f \u4f7f\u7528 \u52a8\u6001 \u5bf9\u8c61 \u8fdb\u884c \u5b9a\u4e49 \u3002 \u5728 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u4e2d \uff0c \u6211\u4eec \u5c55\u793a \u4e86 \u6bcf\u4e2a \u4efb\u52a1 \u7684 \u6700\u7ec8 \u5b9a\u4e49 \u4f4d\u7f6e \u548c \u52a8\u6001 \u5bf9\u8c61 \u7684 \u6570\u91cf \uff1a # Define the start / end position below as tasks poses _ task0 = [ [ 7 , 3 ] ] poses _ task1 = [ [ 138 , 17 ] ] poses _ task2 = [ [ 140 , 134 ] ] poses _ task3 = [ [ 140 , 134 ] ] # Concatenate all the tasks poses _ tasks = [ poses _ task0 , poses _ task1 , poses _ task1 , poses _ task3 ] # Add dynamic objects to tasks vehicles _ tasks = [ 0 , 0 , 0 , 20 ] pedestrians _ tasks = [ 0 , 0 , 0 , 50 ] \u6700\u540e \uff0c \u901a\u8fc7 \u4f7f\u7528 \u5b9a\u4e49 \u7684 \u4efb\u52a1 \uff0c \u6211\u4eec \u53ef\u4ee5 \u6784\u5efa \u5b9e\u9a8c \u5411\u91cf \uff0c \u5982 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u6240\u793a \uff1a experiments _ vector = [ ] # The used weathers is the union between test and train weathers for weather in used _ weathers : for iteration in range ( len ( poses _ tasks ) ) : poses = poses _ tasks [ iteration ] vehicles = vehicles _ tasks [ iteration ] pedestrians = pedestrians _ tasks [ iteration ] conditions = CarlaSettings ( ) conditions . set ( SendNonPlayerAgentsInfo = True , NumberOfVehicles = vehicles , NumberOfPedestrians = pedestrians , WeatherId = weather ) # Add all the cameras that were set for this experiments conditions . add _ sensor ( camera ) experiment = Experiment ( ) experiment . set ( Conditions = conditions , Poses = poses , Task = iteration , Repetitions = 1 ) experiments _ vector . append ( experiment ) \u5b8c\u6574 \u4ee3\u7801 \u53ef\u4ee5 \u5728 basic _ experiment _ suite . py \u627e\u5230 \u3002 \u9884\u671f \u7ed3\u679c \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4e00\u4e2a \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u7684 Carla \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u8fd9\u6837 \u60a8 \u83b7\u5f97 \u7684 \u7ed3\u679c \u5c06 \u6216\u591a\u6216\u5c11 \u5177\u6709 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 \u4e3a\u6b64 \uff0c \u60a8 \u5e94\u8be5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u8fd0\u884c Carla \u6a21\u62df \u6a21\u62df\u5668 \uff1a . / CarlaUE4 . sh / Game / Maps / < Town _ name > - windowed - world - port = 2000 - benchmark - fps = 10 \u672c \u6559\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u4ee5 \u9488\u5bf9 Town01 \u6267\u884c \uff0c \u5982\u4e0b \u6240\u793a \uff1a . / driving _ benchmark _ example . py - c Town01 \u60a8 \u5e94\u8be5 \u671f\u671b \u5f97\u5230 \u4ee5\u4e0b \u7ed3\u679c \uff1a town01 _ basic _ forward _ results \u5bf9\u4e8e Town02 \uff1a . / driving _ benchmark _ example . py - c Town02 \u60a8 \u5e94\u8be5 \u671f\u671b \u5f97\u5230 \u4ee5\u4e0b \u7ed3\u679c \uff1a town01 _ basic _ forward _ results","title":"\u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"benchmark_creating/#_1","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u5c55\u793a \uff1a \u5982\u4f55 \u5b9a\u4e49 \u4e00\u4e2a \u5177\u6709 \u524d\u5411 \u7b56\u7565 \u7684 \u7b80\u5355 \u4ee3\u7406 \u5982\u4f55 \u5b9a\u4e49 \u4e00\u4e2a \u57fa\u672c \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u5b9a\u4e49 \u5b9a\u4e49 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u6784\u5efa \u5b9e\u9a8c \u9884\u671f \u7ed3\u679c \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u4e0e \u5176\u4ed6 \u4e24\u4e2a \u6a21\u5757 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u4ee3\u7406 \u6a21\u5757 \u662f \u53e6 \u4e00\u4e2a \u6a21\u5757 \uff08 \u5b9e\u9a8c \u5957\u4ef6 \uff09 \u4e2d \u6267\u884c \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8fd9 \u4e24\u4e2a \u6a21\u5757 \u90fd \u662f \u62bd\u8c61 \u62bd\u8c61\u7c7b \uff0c \u5fc5\u987b \u7531 \u7528\u6237 \u91cd\u65b0 \u5b9a\u4e49 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u6458\u5f55 \u662f \u5982\u4f55 \u5e94\u7528 \u9a7e\u9a76 \u57fa\u51c6 \u7684 \u793a\u4f8b \uff1b # \u6211\u4eec \u5b9e\u4f8b \u5316 \u4e86 \u4e00\u4e2a \u8f6c\u53d1 \u4ee3\u7406 \uff0c \u8fd9\u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u7b56\u7565 \uff0c # \u53ea \u9700 \u5c06 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u8bbe\u7f6e \u4e3a 0.9 \uff0c \u5c06 \u8f6c\u5411 \u8bbe\u7f6e \u4e3a \u96f6 agent = ForwardAgent ( ) # \u6211\u4eec \u5b9e\u4f8b \u5316 \u4e86 \u4e00\u4e2a \u5b9e\u9a8c \u5957\u4ef6 \u3002 # \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u4e00\u7ec4 \u5c06 \u5728 \u6b64 \u57fa\u51c6 \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u7684 \u5b9e\u9a8c \u3002 experiment _ suite = BasicExperimentSuite ( city _ name ) # \u73b0\u5728 \u5b9e\u9645 \u8fd0\u884c driving _ benchmark \u3002 # \u9664\u4e86 \u4ee3\u7406 \u548c \u5b9e\u9a8c \u5957\u4ef6 \u4e4b\u5916 \uff0c \u6211\u4eec \u8fd8 \u5e94\u8be5 \u53d1\u9001 \u57ce\u5e02 \u540d\u79f0 \uff08 Town01 \uff0c Town02 \uff09 \u65e5\u5fd7 run _ driving _ benchmark ( agent , experiment _ suite , city _ name , log _ name , continue _ experiment , host , port ) \u8fd9 \u6bb5 \u6458\u5f55 \u4e4b\u540e \uff0c \u6709 \u4e24\u4e2a \u7c7b \u9700\u8981 \u5b9a\u4e49 \u3002 ForwardAgent ( ) \u548c BasicExperimentSuite ( ) \u3002 \u4e4b\u540e \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u201c run _ driving _ benchmark \u201d \u51fd\u6570 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u6267\u884c \u6458\u8981 \u3001 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u5b58\u50a8 \u5728 json \u6587\u4ef6 \u4e2d \u6253\u5370 \u5e76\u6253\u5370 \u5230 \u5c4f\u5e55 \u4e0a \u3002","title":"\u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"benchmark_creating/#_2","text":"\u88ab \u6d4b\u8bd5 \u7684 \u4ee3\u7406 \u5fc5\u987b \u7ee7\u627f \u57fa\u7c7b Agent \u3002 \u6211\u4eec \u5148 \u4ece \u6d3e\u751f \u4e00\u4e2a \u7b80\u5355 \u7684 \u8f6c\u53d1 \u4ee3\u7406 \u5f00\u59cb \uff1a from carla . agent . agent import Agent from carla . client import VehicleControl class ForwardAgent ( Agent ) : \u4e3a\u4e86 \u8bc4\u4f30 \u5176 \u6027\u80fd \uff0c ForwardAgent \u6d3e\u751f \u6d3e\u751f\u7c7b \u5fc5\u987b \u91cd\u65b0 \u5b9a\u4e49 run _ step \u51fd\u6570 \uff0c \u5982 \u4e0b\u9762 \u6458\u5f55 \u7684 \u90a3\u6837 \uff1a def run _ step ( self , measurements , sensor _ data , directions , target ) : \" \" \" \u5728 CARLA \u8f66\u8f86 \u4e2d \u8fd0\u884c \u63a7\u5236 \u6b65\u9aa4 \u7684 \u51fd\u6570 \u3002 \" \" \" control = VehicleControl ( ) control . throttle = 0.9 return control \u8be5 \u51fd\u6570 \u63a5\u6536 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u6d4b\u91cf \u503c \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ece CARLA \u6a21\u62df \u6a21\u62df\u5668 \u63a5\u6536 \u5230 \u7684 \u6574\u4e2a \u4e16\u754c \u72b6\u6001 \u3002 \u8fd9\u4e9b \u6d4b\u91cf \u503c \u5305\u542b \u4ee3\u7406 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u3001 \u52a8\u6001 \u5bf9\u8c61 \u4fe1\u606f \u7b49 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff1a \u6765\u81ea \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6d4b\u91cf \u6570\u636e \uff0c \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6216 RGB \u6444\u50cf \u6444\u50cf\u673a \u3002 \u65b9\u5411 \uff1a \u6765\u81ea \u9ad8\u7ea7 \u89c4\u5212 \u5668 \u7684 \u4fe1\u606f \u3002 \u5f53\u524d \uff0c \u89c4\u5212 \u5668 \u4ece \u4e0b\u5217 \u96c6\u5408 \u53d1\u9001 \u9ad8\u7ea7 \u547d\u4ee4 \uff1a \u76f4\u884c \u3001 \u53f3 \u884c \u3001 \u5de6 \u884c \u3001 \u65e0 \u884c \u3002 \u76ee\u6807 \u4f4d\u7f6e \uff1a \u76ee\u6807 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u6709 \u4e86 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \uff0c run _ step \u51fd\u6570 \u9884\u8ba1 \u4f1a \u8fd4\u56de \u4e00\u4e2a \u8f66\u8f86 \u63a7\u5236 \u6d88\u606f \uff0c \u5305\u542b \uff1a \u8f6c\u5411 \u503c \u3001 \u6cb9\u95e8 \u503c \u3001 \u5239\u8f66 \u503c \u7b49 \u3002","title":"\u5b9a\u4e49 \u4ee3\u7406 "},{"location":"benchmark_creating/#_3","text":"\u8981 \u521b\u5efa \u5b9e\u9a8c \u5957\u4ef6 \u7c7b \uff0c \u60a8 \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u901a\u8fc7 \u7ee7\u627f ExperimentSuite \u57fa\u7c7b \u6765 \u521b\u5efa \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7c7b \u3002 \u5b9a\u4e49 \u8981 \u4f7f\u7528 \u7684 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u3002 \u6784\u5efa \u5b9e\u9a8c \u5bf9\u8c61 \u3002","title":"\u5b9a\u4e49 \u5b9e\u9a8c \u5957\u4ef6 "},{"location":"benchmark_creating/#_4","text":"\u5b9a\u4e49 \u7684 \u5b9e\u9a8c \u96c6 \u5fc5\u987b \u6d3e\u751f ExperimentSuite \u7c7b \uff0c \u5982 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u6240\u793a \uff1a from carla . agent _ benchmark . experiment import Experiment from carla . sensor import Camera from carla . settings import CarlaSettings from . experiment _ suite import ExperimentSuite class BasicExperimentSuite ( ExperimentSuite ) :","title":"\u5b9a\u4e49 "},{"location":"benchmark_creating/#_5","text":"\u7528\u6237 \u5fc5\u987b \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5929\u6c14 \u3002 \u5e94\u8be5 \u9009\u62e9 \u4e00\u7ec4 \u6d4b\u8bd5 \u5929\u6c14 \u548c \u4e00\u7ec4 \u8bad\u7ec3 \u5929\u6c14 \u3002 \u8fd9 \u88ab \u5b9a\u4e49 \u4e3a\u7c7b \u5c5e\u6027 \uff0c \u5982\u4e0b \u4f8b \u6240\u793a \uff1a @ property def train _ weathers ( self ) : return [ 1 ] @ property def test _ weathers ( self ) : return [ 1 ]","title":"\u5b9a\u4e49 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 "},{"location":"benchmark_creating/#_6","text":"\u5b9e\u9a8c \u7531 \u4e00\u7ec4 \u59ff\u52bf \u5b9a\u4e49 \u7684 \u4efb\u52a1 \u7ec4\u6210 \u3002 \u8ba9 \u6211\u4eec \u4ece \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u57ce\u5e02 \u7684 \u59ff\u52bf \u5f00\u59cb \uff0c \u4ee5 Town01 \u4e3a\u4f8b \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u67e5\u770b \u6240\u6709 \u53ef\u80fd \u7684 \u4f4d\u7f6e \uff0c \u4e3a\u6b64 \uff0c \u5728 \u7ec8\u7aef \u4e2d \u8fd0\u884c CARLA \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u8fd0\u884c view _ start _ positions . py \uff1a python view _ start _ positions . py \u73b0\u5728 \u8ba9 \u6211\u4eec \u9009\u62e9 140 \u4f5c\u4e3a \u8d77\u59cb \u4f4d\u7f6e \uff0c 134 \u4f5c\u4e3a \u7ec8\u6b62 \u4f4d\u7f6e \u3002 \u8fd9 \u4e24\u4e2a \u4f4d\u7f6e \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 \uff1a python view _ start _ positions . py -- pos 140 , 134 -- no - labels \u6211\u4eec \u518d \u9009\u62e9 \u4e24\u4e2a \u59ff\u52bf \uff0c \u4e00\u4e2a \u7528\u4e8e \u76f4\u884c \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u7b80\u5355 \u8f6c\u5f2f \u3002 \u6b64\u5916 \uff0c \u6211\u4eec \u8fd8 \u4e3a Town02 \u9009\u62e9 \u4e09\u4e2a \u59ff\u52bf \uff1a \u56fe \uff1a \u6b64 \u57fa\u672c \u5b9e\u9a8c \u5957\u4ef6 \u793a\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u59ff\u52bf \u3002 \u59ff\u52bf \u662f \u76ee\u6807 \u5bfc\u5411 \u60c5\u8282 \u7684 \u5f00\u59cb \u548c \u7ed3\u675f \u4f4d\u7f6e \u7684 \u5143\u7ec4 \u3002 \u5f00\u59cb \u4f4d\u7f6e \u663e\u793a \u4e3a \u84dd\u8272 \uff0c \u7ed3\u675f \u4f4d\u7f6e \u663e\u793a \u4e3a \u7ea2\u8272 \u3002 \u5de6 \uff1a \u76f4\u7ebf \u59ff\u52bf \uff0c \u5176\u4e2d \u76ee\u6807 \u4e0e \u8d77\u59cb \u4f4d\u7f6e \u76f4\u7ebf \u8ddd\u79bb \u3002 \u4e2d \uff1a \u4e00\u4e2a \u8f6c\u5f2f \u60c5\u8282 \uff0c \u5176\u4e2d \u76ee\u6807 \u4e0e \u8d77\u70b9 \u76f8\u8ddd \u4e00\u4e2a \u8f6c\u5f2f \u3002 \u53f3 \uff1a \u4efb\u610f \u4f4d\u7f6e \uff0c \u76ee\u6807 \u8ddd\u79bb \u8d77\u59cb \u4f4d\u7f6e \u8f83 \u8fdc \uff0c \u901a\u5e38 \u8d85\u8fc7 \u4e00\u4e2a \u8f6c\u5f2f \u3002 \u6211\u4eec \u5c06 \u6bcf\u4e2a \u59ff\u52bf \u5b9a\u4e49 \u4e3a \u4e00\u9879 \u4efb\u52a1 \u3002 \u6b64\u5916 \uff0c \u6211\u4eec \u8fd8 \u4e3a \u6bcf\u4e2a \u4efb\u52a1 \u8bbe\u7f6e \u52a8\u6001 \u5bf9\u8c61 \u7684 \u6570\u91cf \uff0c \u5e76 \u91cd\u590d \u4efb\u610f \u4f4d\u7f6e \u4efb\u52a1 \uff0c \u4f7f \u5176 \u4e5f \u4f7f\u7528 \u52a8\u6001 \u5bf9\u8c61 \u8fdb\u884c \u5b9a\u4e49 \u3002 \u5728 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u4e2d \uff0c \u6211\u4eec \u5c55\u793a \u4e86 \u6bcf\u4e2a \u4efb\u52a1 \u7684 \u6700\u7ec8 \u5b9a\u4e49 \u4f4d\u7f6e \u548c \u52a8\u6001 \u5bf9\u8c61 \u7684 \u6570\u91cf \uff1a # Define the start / end position below as tasks poses _ task0 = [ [ 7 , 3 ] ] poses _ task1 = [ [ 138 , 17 ] ] poses _ task2 = [ [ 140 , 134 ] ] poses _ task3 = [ [ 140 , 134 ] ] # Concatenate all the tasks poses _ tasks = [ poses _ task0 , poses _ task1 , poses _ task1 , poses _ task3 ] # Add dynamic objects to tasks vehicles _ tasks = [ 0 , 0 , 0 , 20 ] pedestrians _ tasks = [ 0 , 0 , 0 , 50 ] \u6700\u540e \uff0c \u901a\u8fc7 \u4f7f\u7528 \u5b9a\u4e49 \u7684 \u4efb\u52a1 \uff0c \u6211\u4eec \u53ef\u4ee5 \u6784\u5efa \u5b9e\u9a8c \u5411\u91cf \uff0c \u5982 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u6240\u793a \uff1a experiments _ vector = [ ] # The used weathers is the union between test and train weathers for weather in used _ weathers : for iteration in range ( len ( poses _ tasks ) ) : poses = poses _ tasks [ iteration ] vehicles = vehicles _ tasks [ iteration ] pedestrians = pedestrians _ tasks [ iteration ] conditions = CarlaSettings ( ) conditions . set ( SendNonPlayerAgentsInfo = True , NumberOfVehicles = vehicles , NumberOfPedestrians = pedestrians , WeatherId = weather ) # Add all the cameras that were set for this experiments conditions . add _ sensor ( camera ) experiment = Experiment ( ) experiment . set ( Conditions = conditions , Poses = poses , Task = iteration , Repetitions = 1 ) experiments _ vector . append ( experiment ) \u5b8c\u6574 \u4ee3\u7801 \u53ef\u4ee5 \u5728 basic _ experiment _ suite . py \u627e\u5230 \u3002","title":"\u6784\u5efa \u5b9e\u9a8c "},{"location":"benchmark_creating/#_7","text":"\u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4e00\u4e2a \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u7684 Carla \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u8fd9\u6837 \u60a8 \u83b7\u5f97 \u7684 \u7ed3\u679c \u5c06 \u6216\u591a\u6216\u5c11 \u5177\u6709 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 \u4e3a\u6b64 \uff0c \u60a8 \u5e94\u8be5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u8fd0\u884c Carla \u6a21\u62df \u6a21\u62df\u5668 \uff1a . / CarlaUE4 . sh / Game / Maps / < Town _ name > - windowed - world - port = 2000 - benchmark - fps = 10 \u672c \u6559\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u4ee5 \u9488\u5bf9 Town01 \u6267\u884c \uff0c \u5982\u4e0b \u6240\u793a \uff1a . / driving _ benchmark _ example . py - c Town01 \u60a8 \u5e94\u8be5 \u671f\u671b \u5f97\u5230 \u4ee5\u4e0b \u7ed3\u679c \uff1a town01 _ basic _ forward _ results \u5bf9\u4e8e Town02 \uff1a . / driving _ benchmark _ example . py - c Town02 \u60a8 \u5e94\u8be5 \u671f\u671b \u5f97\u5230 \u4ee5\u4e0b \u7ed3\u679c \uff1a town01 _ basic _ forward _ results","title":"\u9884\u671f \u7ed3\u679c "},{"location":"benchmark_metrics/","text":"\u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u6a21\u5757 \u3002 \u6b64 \u6a21\u5757 \u7528\u4e8e \u6839\u636e \u4ee3\u7406 \u5728 \u57fa\u51c6 \u6d4b\u8bd5 \u671f\u95f4 \u6267\u884c \u7684 \u64cd\u4f5c \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u6458\u8981 \u3002 \u63d0\u4f9b \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u9a7e\u9a76 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u6a21\u5757 \u63d0\u4f9b \u4ee5\u4e0b \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \uff1a \u6210\u529f \u767e\u5206 \u767e\u5206\u6bd4 \uff1a \u4ee3\u7406 \u6210\u529f \u5b8c\u6210 \u7684 \u60c5\u8282 \uff08 \u4efb\u52a1 \u59ff\u52bf \uff09 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u5e73\u5747 \u5b8c\u6210 \u5b8c\u6210\u5ea6 \uff1a \u4ee3\u7406 \u80fd\u591f \u5230\u8fbe \u76ee\u6807 \u7684 \u5e73\u5747 \u8ddd\u79bb \u3002 \u8d8a\u91ce \u8def\u53e3 \uff1a \u4ee3\u7406 \u9a76\u51fa \u9053\u8def \u7684 \u6b21\u6570 \u3002 \u53ea\u6709 \u5f53 \u8f66\u8f86 \u5728 \u9053\u8def \u5916 \u7684 \u9762\u79ef \u5927\u4e8e \u9608\u503c \u65f6 \uff0c \u624d \u4f1a \u8ba1\u7b97 \u8def\u53e3 \u3002 \u5176\u4ed6 \u8f66\u9053 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \uff1a \u4ee3\u7406 \u8fdb\u5165 \u5176\u4ed6 \u8f66\u9053 \u7684 \u6b21\u6570 \u3002 \u53ea\u6709 \u5f53 \u5176\u4ed6 \u8f66\u9053 \u4e0a \u7684 \u8f66\u8f86 \u9762\u79ef \u5927\u4e8e \u9608\u503c \u65f6 \uff0c \u624d \u4f1a \u8ba1\u7b97 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002 \u8f66\u8f86 \u78b0\u649e \uff1a \u5f71\u54cd \u91cf \u5927\u4e8e \u9608\u503c \u7684 \u8f66\u8f86 \u78b0\u649e \u6b21\u6570 \u3002 \u884c\u4eba \u78b0\u649e \uff1a \u4e0e \u884c\u4eba \u53d1\u751f \u78b0\u649e \u4e14 \u5f71\u54cd \u5927\u4e8e \u9608\u503c \u7684 \u6b21\u6570 \u3002 \u4e00\u822c \u78b0\u649e \uff1a \u4e0e \u6240\u6709 \u5176\u4ed6 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u4e14 \u5f71\u54cd \u5927\u4e8e \u9608\u503c \u7684 \u6b21\u6570 \u3002 \u6267\u884c \u5e76 \u8bbe\u7f6e \u53c2\u6570 \u6307\u6807 \u4f5c\u4e3a \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u6700\u540e \u4e00\u6b65 \u8fdb\u884c \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u6458\u8981 \u5b58\u50a8 \u5728 json \u6587\u4ef6 \u4e2d \u3002 \u5185\u90e8 \u6267\u884c \u5982\u4e0b \uff1a metrics _ object = Metrics ( metrics _ parameters ) summary _ dictionary = metrics _ object . compute ( path _ to _ execution _ log ) Metric \u7684 \u8ba1\u7b97 \u51fd\u6570 \u63a5\u6536 \u6267\u884c \u65e5\u5fd7 \u7684 \u5b8c\u6574 \u8def\u5f84 \u3002 Metric \u7c7b \u5e94\u8be5 \u4f7f\u7528 \u4e00\u4e9b \u53c2\u6570 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u5305\u62ec \uff1a \u9608\u503c \uff1a \u6307\u6807 \u4f7f\u7528 \u7684 \u9608\u503c \u3002 \u5e27 \u91cd\u65b0 \u8ba1\u6570 \uff1a \u72af\u89c4 \u540e \uff0c \u8bbe\u7f6e \u4ee3\u7406 \u9700\u8981 \u7ee7\u7eed \u72af\u89c4 \u7684 \u5e27 \u6570 \uff0c \u624d \u4f1a \u5c06 \u5176\u8ba1 \u4e3a \u53e6 \u4e00\u6b21 \u72af\u89c4 \u3002 \u8df3\u8fc7 \u5e27 \u6570 \uff1a \u4e0e \u78b0\u649e \u6216 \u4ea4\u53c9 \u5f00\u59cb \u540e \u8df3 \u8fc7 \u7684 \u5e27 \u6570 \u6709\u5173 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u88ab \u5b9a\u4e49 \u4e3a \u5b9e\u9a8c \u5957\u4ef6 \u57fa\u7c7b \u7684 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u5728 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b9e\u9a8c \u5957\u4ef6 \u4e2d \u91cd\u65b0 \u5b9a\u4e49 \u3002 \u9ed8\u8ba4 \u53c2\u6570 \u4e3a \uff1a @ property def metrics _ parameters ( self ) : \" \" \" Property to return the parameters for the metrics module Could be redefined depending on the needs of the user . \" \" \" return { ' intersection _ offroad ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 0.3 } , ' intersection _ otherlane ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 0.4 } , ' collision _ other ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 400 } , ' collision _ vehicles ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 30 , ' threshold ' : 400 } , ' collision _ pedestrians ' : { ' frames _ skip ' : 5 , ' frames _ recount ' : 100 , ' threshold ' : 300 } , }","title":"\u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd\u6307\u6807"},{"location":"benchmark_metrics/#_1","text":"\u672c\u9875 \u4ecb\u7ecd \u4e86 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u6a21\u5757 \u3002 \u6b64 \u6a21\u5757 \u7528\u4e8e \u6839\u636e \u4ee3\u7406 \u5728 \u57fa\u51c6 \u6d4b\u8bd5 \u671f\u95f4 \u6267\u884c \u7684 \u64cd\u4f5c \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u6458\u8981 \u3002","title":"\u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd\u6307\u6807"},{"location":"benchmark_metrics/#_2","text":"\u9a7e\u9a76 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u6a21\u5757 \u63d0\u4f9b \u4ee5\u4e0b \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \uff1a \u6210\u529f \u767e\u5206 \u767e\u5206\u6bd4 \uff1a \u4ee3\u7406 \u6210\u529f \u5b8c\u6210 \u7684 \u60c5\u8282 \uff08 \u4efb\u52a1 \u59ff\u52bf \uff09 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u5e73\u5747 \u5b8c\u6210 \u5b8c\u6210\u5ea6 \uff1a \u4ee3\u7406 \u80fd\u591f \u5230\u8fbe \u76ee\u6807 \u7684 \u5e73\u5747 \u8ddd\u79bb \u3002 \u8d8a\u91ce \u8def\u53e3 \uff1a \u4ee3\u7406 \u9a76\u51fa \u9053\u8def \u7684 \u6b21\u6570 \u3002 \u53ea\u6709 \u5f53 \u8f66\u8f86 \u5728 \u9053\u8def \u5916 \u7684 \u9762\u79ef \u5927\u4e8e \u9608\u503c \u65f6 \uff0c \u624d \u4f1a \u8ba1\u7b97 \u8def\u53e3 \u3002 \u5176\u4ed6 \u8f66\u9053 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \uff1a \u4ee3\u7406 \u8fdb\u5165 \u5176\u4ed6 \u8f66\u9053 \u7684 \u6b21\u6570 \u3002 \u53ea\u6709 \u5f53 \u5176\u4ed6 \u8f66\u9053 \u4e0a \u7684 \u8f66\u8f86 \u9762\u79ef \u5927\u4e8e \u9608\u503c \u65f6 \uff0c \u624d \u4f1a \u8ba1\u7b97 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002 \u8f66\u8f86 \u78b0\u649e \uff1a \u5f71\u54cd \u91cf \u5927\u4e8e \u9608\u503c \u7684 \u8f66\u8f86 \u78b0\u649e \u6b21\u6570 \u3002 \u884c\u4eba \u78b0\u649e \uff1a \u4e0e \u884c\u4eba \u53d1\u751f \u78b0\u649e \u4e14 \u5f71\u54cd \u5927\u4e8e \u9608\u503c \u7684 \u6b21\u6570 \u3002 \u4e00\u822c \u78b0\u649e \uff1a \u4e0e \u6240\u6709 \u5176\u4ed6 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u4e14 \u5f71\u54cd \u5927\u4e8e \u9608\u503c \u7684 \u6b21\u6570 \u3002","title":"\u63d0\u4f9b \u6027\u80fd\u6307\u6807"},{"location":"benchmark_metrics/#_3","text":"\u6307\u6807 \u4f5c\u4e3a \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u6700\u540e \u4e00\u6b65 \u8fdb\u884c \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u6458\u8981 \u5b58\u50a8 \u5728 json \u6587\u4ef6 \u4e2d \u3002 \u5185\u90e8 \u6267\u884c \u5982\u4e0b \uff1a metrics _ object = Metrics ( metrics _ parameters ) summary _ dictionary = metrics _ object . compute ( path _ to _ execution _ log ) Metric \u7684 \u8ba1\u7b97 \u51fd\u6570 \u63a5\u6536 \u6267\u884c \u65e5\u5fd7 \u7684 \u5b8c\u6574 \u8def\u5f84 \u3002 Metric \u7c7b \u5e94\u8be5 \u4f7f\u7528 \u4e00\u4e9b \u53c2\u6570 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u5305\u62ec \uff1a \u9608\u503c \uff1a \u6307\u6807 \u4f7f\u7528 \u7684 \u9608\u503c \u3002 \u5e27 \u91cd\u65b0 \u8ba1\u6570 \uff1a \u72af\u89c4 \u540e \uff0c \u8bbe\u7f6e \u4ee3\u7406 \u9700\u8981 \u7ee7\u7eed \u72af\u89c4 \u7684 \u5e27 \u6570 \uff0c \u624d \u4f1a \u5c06 \u5176\u8ba1 \u4e3a \u53e6 \u4e00\u6b21 \u72af\u89c4 \u3002 \u8df3\u8fc7 \u5e27 \u6570 \uff1a \u4e0e \u78b0\u649e \u6216 \u4ea4\u53c9 \u5f00\u59cb \u540e \u8df3 \u8fc7 \u7684 \u5e27 \u6570 \u6709\u5173 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u88ab \u5b9a\u4e49 \u4e3a \u5b9e\u9a8c \u5957\u4ef6 \u57fa\u7c7b \u7684 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u5728 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b9e\u9a8c \u5957\u4ef6 \u4e2d \u91cd\u65b0 \u5b9a\u4e49 \u3002 \u9ed8\u8ba4 \u53c2\u6570 \u4e3a \uff1a @ property def metrics _ parameters ( self ) : \" \" \" Property to return the parameters for the metrics module Could be redefined depending on the needs of the user . \" \" \" return { ' intersection _ offroad ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 0.3 } , ' intersection _ otherlane ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 0.4 } , ' collision _ other ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 400 } , ' collision _ vehicles ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 30 , ' threshold ' : 400 } , ' collision _ pedestrians ' : { ' frames _ skip ' : 5 , ' frames _ recount ' : 100 , ' threshold ' : 300 } , }","title":"\u6267\u884c \u5e76 \u8bbe\u7f6e \u53c2\u6570"},{"location":"benchmark_start/","text":"\u9a7e\u9a76 \u57fa\u51c6 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7528\u4e8e \u8bc4\u4f30 \u9a7e\u9a76 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u4ee3\u7406 \uff09 \u5e76 \u83b7\u53d6 \u6709\u5173 \u5176 \u6027\u80fd \u7684 \u6307\u6807 \u3002 \u8be5 \u6a21\u5757 \u4e3b\u8981 \u8bbe\u8ba1 \u7528\u4e8e \uff1a \u81f4\u529b \u81f4\u529b\u4e8e \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u5e76 \u5e0c\u671b \u4e86\u89e3 \u5176 \u5728 CARLA \u4e2d \u7684 \u8868\u73b0 \u7684 \u7528\u6237 \u3002 \u5728 \u672c\u8282 \u4e2d \u60a8 \u5c06 \u4e86\u89e3 \u3002 \u5982\u4f55 \u5feb\u901f \u5165\u95e8 \u5e76 \u7acb\u5373 \u5bf9 \u7b80\u5355 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4e86\u89e3 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u6a21\u5757 \u7684 \u603b\u4f53 \u5b9e\u73b0 \u67b6\u6784 \u3002 \u4e86\u89e3 \u5982\u4f55 \u8bbe\u7f6e \u60a8 \u7684 \u4ee3\u7406 \u5e76 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u4e00\u7ec4 \u5b9e\u9a8c \u3002 \u4e86\u89e3 \u6240 \u4f7f\u7528 \u7684 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u3002 \u5165\u95e8 \u4e3a\u4e86 \u8ba9 \u60a8 \u719f\u6089 \u7cfb\u7edf \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5728 \u4e00\u7ec4 \u5c0f\u578b \u5b9e\u9a8c \u4e2d \u6267\u884c \u7684 \u7b80\u5355 \u4ee3\u7406 \uff08 \u57fa\u672c \uff09 \u3002 \u8981 \u6267\u884c \u5b83 \uff0c \u53ea \u9700 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py \u8bf7 \u8bb0\u4f4f \uff0c \u8981 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \uff0c \u60a8 \u9700\u8981 \u5728 \u672c\u5730 \u4e3b\u673a \u548c \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c CARLA \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 \u4e0e CoRL 2017 \u8bba\u6587 \u4e2d \u4f7f\u7528 \u7684 \u76f8\u540c \u57fa\u51c6 \u3002 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u7b80\u5355 \u7684 \u4ee3\u7406 \u4e2d \u8fd0\u884c \uff0c \u53ea \u9700 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py -- corl - 2017 \u6b64 \u57fa\u51c6 \u6d4b\u8bd5 \u793a\u4f8b \u53ef\u4ee5 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u914d\u7f6e \u3002 \u8fd0\u884c help \u547d\u4ee4 \u67e5\u770b \u53ef\u7528 \u7684 \u9009\u9879 \u3002 . / driving _ benchmark _ example . py -- help \u53ef\u7528 \u7684 \u9009\u9879 \u4e4b\u4e00 \u662f \u80fd\u591f \u4ece \u4e4b\u524d \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \u6267\u884c \u7ee7\u7eed \u3002 \u4f8b\u5982 \uff0c \u8981 \u7ee7\u7eed CoRL2017 \u4e2d \u65e5\u5fd7 \u540d\u79f0 \u4e3a \u201c driving _ benchmark _ test \u201d \u7684 \u5b9e\u9a8c \uff0c \u8bf7 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py -- continue - experiment - n driving _ benchmark _ test -- corl - 2017 \u7b14\u8bb0 \u5982\u679c \u65e5\u5fd7 \u540d\u79f0 \u5df2\u7ecf \u5b58\u5728 \u5e76\u4e14 \u60a8 \u6ca1\u6709 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u7ee7\u7eed \uff0c \u5b83 \u5c06 \u4ee5 \u4e0d\u540c \u7684 \u540d\u79f0 \u521b\u5efa \u53e6 \u4e00\u4e2a \u65e5\u5fd7 \u3002 \u5f53 \u8fd0\u884c \u57fa\u672c \u914d\u7f6e \u7684 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u65f6 \uff0c \u4f60 \u5e94\u8be5 \u671f\u5f85 \u8fd9\u4e9b \u7ed3\u679c \u3002","title":"\u9a7e\u9a76 \u57fa\u51c6"},{"location":"benchmark_start/#_1","text":"\u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7528\u4e8e \u8bc4\u4f30 \u9a7e\u9a76 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u4ee3\u7406 \uff09 \u5e76 \u83b7\u53d6 \u6709\u5173 \u5176 \u6027\u80fd \u7684 \u6307\u6807 \u3002 \u8be5 \u6a21\u5757 \u4e3b\u8981 \u8bbe\u8ba1 \u7528\u4e8e \uff1a \u81f4\u529b \u81f4\u529b\u4e8e \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u5e76 \u5e0c\u671b \u4e86\u89e3 \u5176 \u5728 CARLA \u4e2d \u7684 \u8868\u73b0 \u7684 \u7528\u6237 \u3002 \u5728 \u672c\u8282 \u4e2d \u60a8 \u5c06 \u4e86\u89e3 \u3002 \u5982\u4f55 \u5feb\u901f \u5165\u95e8 \u5e76 \u7acb\u5373 \u5bf9 \u7b80\u5355 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4e86\u89e3 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u6a21\u5757 \u7684 \u603b\u4f53 \u5b9e\u73b0 \u67b6\u6784 \u3002 \u4e86\u89e3 \u5982\u4f55 \u8bbe\u7f6e \u60a8 \u7684 \u4ee3\u7406 \u5e76 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u4e00\u7ec4 \u5b9e\u9a8c \u3002 \u4e86\u89e3 \u6240 \u4f7f\u7528 \u7684 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u3002","title":"\u9a7e\u9a76 \u57fa\u51c6"},{"location":"benchmark_start/#_2","text":"\u4e3a\u4e86 \u8ba9 \u60a8 \u719f\u6089 \u7cfb\u7edf \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5728 \u4e00\u7ec4 \u5c0f\u578b \u5b9e\u9a8c \u4e2d \u6267\u884c \u7684 \u7b80\u5355 \u4ee3\u7406 \uff08 \u57fa\u672c \uff09 \u3002 \u8981 \u6267\u884c \u5b83 \uff0c \u53ea \u9700 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py \u8bf7 \u8bb0\u4f4f \uff0c \u8981 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \uff0c \u60a8 \u9700\u8981 \u5728 \u672c\u5730 \u4e3b\u673a \u548c \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c CARLA \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 \u4e0e CoRL 2017 \u8bba\u6587 \u4e2d \u4f7f\u7528 \u7684 \u76f8\u540c \u57fa\u51c6 \u3002 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u7b80\u5355 \u7684 \u4ee3\u7406 \u4e2d \u8fd0\u884c \uff0c \u53ea \u9700 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py -- corl - 2017 \u6b64 \u57fa\u51c6 \u6d4b\u8bd5 \u793a\u4f8b \u53ef\u4ee5 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u914d\u7f6e \u3002 \u8fd0\u884c help \u547d\u4ee4 \u67e5\u770b \u53ef\u7528 \u7684 \u9009\u9879 \u3002 . / driving _ benchmark _ example . py -- help \u53ef\u7528 \u7684 \u9009\u9879 \u4e4b\u4e00 \u662f \u80fd\u591f \u4ece \u4e4b\u524d \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \u6267\u884c \u7ee7\u7eed \u3002 \u4f8b\u5982 \uff0c \u8981 \u7ee7\u7eed CoRL2017 \u4e2d \u65e5\u5fd7 \u540d\u79f0 \u4e3a \u201c driving _ benchmark _ test \u201d \u7684 \u5b9e\u9a8c \uff0c \u8bf7 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py -- continue - experiment - n driving _ benchmark _ test -- corl - 2017 \u7b14\u8bb0 \u5982\u679c \u65e5\u5fd7 \u540d\u79f0 \u5df2\u7ecf \u5b58\u5728 \u5e76\u4e14 \u60a8 \u6ca1\u6709 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u7ee7\u7eed \uff0c \u5b83 \u5c06 \u4ee5 \u4e0d\u540c \u7684 \u540d\u79f0 \u521b\u5efa \u53e6 \u4e00\u4e2a \u65e5\u5fd7 \u3002 \u5f53 \u8fd0\u884c \u57fa\u672c \u914d\u7f6e \u7684 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u65f6 \uff0c \u4f60 \u5e94\u8be5 \u671f\u5f85 \u8fd9\u4e9b \u7ed3\u679c \u3002","title":"\u5165\u95e8"},{"location":"benchmark_structure/","text":"\u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784 \u4e0b\u56fe \u663e\u793a \u4e86 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 \u56fe \uff1a \u4ee3\u7406 \u57fa\u51c6 \u6d4b\u8bd5 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 \u9a7e\u9a76 \u57fa\u51c6 \u662f \u8d1f\u8d23 \u8bc4\u4f30 \u5b9e\u9a8c \u5957\u4ef6 \u4e2d \u67d0\u4e2a \u4ee3\u7406 \u7684 \u6a21\u5757 \u3002 \u5b9e\u9a8c \u5957\u4ef6 \u662f \u4e00\u4e2a \u62bd\u8c61 \u6a21\u5757 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u5fc5\u987b \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u6d3e\u751f \u3002 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 CoRL2017 \u5957\u4ef6 \u548c \u4e00\u4e2a \u7b80\u5355 \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u4f9b \u6d4b\u8bd5 \u3002 \u5b9e\u9a8c \u5957\u4ef6 \u7531 \u4e00\u7ec4 \u5b9e\u9a8c \u7ec4\u6210 \u3002 \u6bcf\u4e2a \u5b9e\u9a8c \u5305\u542b \u4e00\u4e2a \u7531 \u4e00\u7ec4 \u5bfc\u822a \u60c5\u8282 \u7ec4\u6210 \u7684 \u4efb\u52a1 \uff0c \u7531 \u4e00\u7ec4 \u59ff\u52bf \u8868\u793a \u3002 \u8fd9\u4e9b \u59ff\u52bf \u662f \u5305\u542b \u60c5\u8282 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5143\u7ec4 \u3002 \u5b9e\u9a8c \u8fd8 \u4e0e \u6761\u4ef6 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u6761\u4ef6 \u7531 carla \u8bbe\u7f6e \u5bf9\u8c61 \u8868\u793a \u3002 \u6761\u4ef6 \u6307\u5b9a \u6a21\u62df \u53c2\u6570 \uff0c \u4f8b\u5982 \uff1a \u5929\u6c14 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5957\u4ef6 \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u6570\u91cf \u7b49 \u3002 \u7528\u6237 \u8fd8 \u5e94\u8be5 \u6d3e\u751f \u4e00\u4e2a \u4ee3\u7406 \u7c7b \u3002 \u4ee3\u7406 \u662f \u5c06 \u5728 \u9a7e\u9a76 \u57fa\u51c6 \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u7684 \u4e3b\u52a8 \u90e8\u5206 \u3002 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u8fd8 \u5305\u542b \u4e24\u4e2a \u8f85\u52a9 \u6a21\u5757 \u3002 \u8bb0\u5f55 \u6a21\u5757 \u7528\u4e8e \u8ddf\u8e2a \u6240\u6709 \u6d4b\u91cf \u503c \uff0c \u5e76 \u53ef \u7528\u4e8e \u6682\u505c \u548c \u7ee7\u7eed \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u6307\u6807 \u6a21\u5757 \u7528\u4e8e \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6d4b\u91cf \u503c \u8ba1\u7b97 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u3002 \u793a\u4f8b \uff1a CORL 2017 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 \u7528\u4e8e \u5bf9 CoRL 2017 \u8bba\u6587 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u3002 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u7684 \u7ec4\u6210 \u5982\u4e0b \uff1a \u6bcf\u4e2a CARLA \u57ce\u9547 \u5171 \u8fdb\u884c 24 \u4e2a \u5b9e\u9a8c \uff0c \u5305\u62ec \uff1a \u76f4\u884c \u7684 \u4efb\u52a1 \u3002 \u8fdb\u884c \u4e00\u6b21 \u8f6c\u5f2f \u7684 \u4efb\u52a1 \u3002 \u524d\u5f80 \u4efb\u610f \u4f4d\u7f6e \u7684 \u4efb\u52a1 \u3002 \u5e26 \u7740 \u52a8\u6001 \u7269\u4f53 \u524d\u5f80 \u4efb\u610f \u4f4d\u7f6e \u7684 \u4efb\u52a1 \u3002 \u6bcf\u4e2a \u4efb\u52a1 \u7531 25 \u4e2a \u59ff\u52bf \u7ec4\u6210 \uff0c \u5728 6 \u79cd \u4e0d\u540c \u7684 \u5929\u6c14 \u6761\u4ef6 \u4e0b \u91cd\u590d \u6267\u884c \uff08 \u6674\u6717 \u4e2d\u5348 \u3001 \u5927\u96e8 \u4e2d\u5348 \u3001 \u6674\u6717 \u65e5\u843d \u3001 \u96e8 \u540e \u4e2d\u5348 \u3001 \u96e8 \u540e \u591a\u4e91 \u548c \u5c0f\u96e8 \u65e5\u843d \uff09 \u3002 \u6574\u4e2a \u5b9e\u9a8c \u96c6 \u5171\u6709 600 \u96c6 \u3002 \u6839\u636e \u4ee3\u7406 \u7684 \u6027\u80fd \uff0c CoRL 2017 \u53ef\u80fd \u9700\u8981 \u6700 \u591a 24 \u5c0f\u65f6 \u624d\u80fd \u4e3a Town01 \u6267\u884c \uff0c \u6700 \u591a 15 \u5c0f\u65f6 \u624d\u80fd \u4e3a Town02 \u6267\u884c \u3002","title":"\u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784"},{"location":"benchmark_structure/#_1","text":"\u4e0b\u56fe \u663e\u793a \u4e86 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 \u56fe \uff1a \u4ee3\u7406 \u57fa\u51c6 \u6d4b\u8bd5 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 \u9a7e\u9a76 \u57fa\u51c6 \u662f \u8d1f\u8d23 \u8bc4\u4f30 \u5b9e\u9a8c \u5957\u4ef6 \u4e2d \u67d0\u4e2a \u4ee3\u7406 \u7684 \u6a21\u5757 \u3002 \u5b9e\u9a8c \u5957\u4ef6 \u662f \u4e00\u4e2a \u62bd\u8c61 \u6a21\u5757 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u5fc5\u987b \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u6d3e\u751f \u3002 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 CoRL2017 \u5957\u4ef6 \u548c \u4e00\u4e2a \u7b80\u5355 \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u4f9b \u6d4b\u8bd5 \u3002 \u5b9e\u9a8c \u5957\u4ef6 \u7531 \u4e00\u7ec4 \u5b9e\u9a8c \u7ec4\u6210 \u3002 \u6bcf\u4e2a \u5b9e\u9a8c \u5305\u542b \u4e00\u4e2a \u7531 \u4e00\u7ec4 \u5bfc\u822a \u60c5\u8282 \u7ec4\u6210 \u7684 \u4efb\u52a1 \uff0c \u7531 \u4e00\u7ec4 \u59ff\u52bf \u8868\u793a \u3002 \u8fd9\u4e9b \u59ff\u52bf \u662f \u5305\u542b \u60c5\u8282 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5143\u7ec4 \u3002 \u5b9e\u9a8c \u8fd8 \u4e0e \u6761\u4ef6 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u6761\u4ef6 \u7531 carla \u8bbe\u7f6e \u5bf9\u8c61 \u8868\u793a \u3002 \u6761\u4ef6 \u6307\u5b9a \u6a21\u62df \u53c2\u6570 \uff0c \u4f8b\u5982 \uff1a \u5929\u6c14 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5957\u4ef6 \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u6570\u91cf \u7b49 \u3002 \u7528\u6237 \u8fd8 \u5e94\u8be5 \u6d3e\u751f \u4e00\u4e2a \u4ee3\u7406 \u7c7b \u3002 \u4ee3\u7406 \u662f \u5c06 \u5728 \u9a7e\u9a76 \u57fa\u51c6 \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u7684 \u4e3b\u52a8 \u90e8\u5206 \u3002 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u8fd8 \u5305\u542b \u4e24\u4e2a \u8f85\u52a9 \u6a21\u5757 \u3002 \u8bb0\u5f55 \u6a21\u5757 \u7528\u4e8e \u8ddf\u8e2a \u6240\u6709 \u6d4b\u91cf \u503c \uff0c \u5e76 \u53ef \u7528\u4e8e \u6682\u505c \u548c \u7ee7\u7eed \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u6307\u6807 \u6a21\u5757 \u7528\u4e8e \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6d4b\u91cf \u503c \u8ba1\u7b97 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u3002","title":"\u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784"},{"location":"benchmark_structure/#corl-2017","text":"\u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 \u7528\u4e8e \u5bf9 CoRL 2017 \u8bba\u6587 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u3002 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u7684 \u7ec4\u6210 \u5982\u4e0b \uff1a \u6bcf\u4e2a CARLA \u57ce\u9547 \u5171 \u8fdb\u884c 24 \u4e2a \u5b9e\u9a8c \uff0c \u5305\u62ec \uff1a \u76f4\u884c \u7684 \u4efb\u52a1 \u3002 \u8fdb\u884c \u4e00\u6b21 \u8f6c\u5f2f \u7684 \u4efb\u52a1 \u3002 \u524d\u5f80 \u4efb\u610f \u4f4d\u7f6e \u7684 \u4efb\u52a1 \u3002 \u5e26 \u7740 \u52a8\u6001 \u7269\u4f53 \u524d\u5f80 \u4efb\u610f \u4f4d\u7f6e \u7684 \u4efb\u52a1 \u3002 \u6bcf\u4e2a \u4efb\u52a1 \u7531 25 \u4e2a \u59ff\u52bf \u7ec4\u6210 \uff0c \u5728 6 \u79cd \u4e0d\u540c \u7684 \u5929\u6c14 \u6761\u4ef6 \u4e0b \u91cd\u590d \u6267\u884c \uff08 \u6674\u6717 \u4e2d\u5348 \u3001 \u5927\u96e8 \u4e2d\u5348 \u3001 \u6674\u6717 \u65e5\u843d \u3001 \u96e8 \u540e \u4e2d\u5348 \u3001 \u96e8 \u540e \u591a\u4e91 \u548c \u5c0f\u96e8 \u65e5\u843d \uff09 \u3002 \u6574\u4e2a \u5b9e\u9a8c \u96c6 \u5171\u6709 600 \u96c6 \u3002 \u6839\u636e \u4ee3\u7406 \u7684 \u6027\u80fd \uff0c CoRL 2017 \u53ef\u80fd \u9700\u8981 \u6700 \u591a 24 \u5c0f\u65f6 \u624d\u80fd \u4e3a Town01 \u6267\u884c \uff0c \u6700 \u591a 15 \u5c0f\u65f6 \u624d\u80fd \u4e3a Town02 \u6267\u884c \u3002","title":"\u793a\u4f8b \uff1a CORL 2017"},{"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":"Bp library"},{"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 \u5728 Linux \u4e0a \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u6784\u5efa \u5728 Windows \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u6784\u5efa \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u79d1\u5b66 \u4e0a\u7f51 \u53c2\u8003 \u5176\u4e2d \u7684 \u4e00\u4e2a \u94fe\u63a5 \u8fdb\u884c \u79d1\u5b66 \u4e0a\u7f51 \u7684 \u8ba2\u9605 \u548c \u73af\u5883 \u914d\u7f6e \uff1a \u94fe\u63a5 1 \u3001 \u94fe\u63a5 2 \u3001 \u94fe\u63a5 3 \u3001 \u94fe\u63a5 4 \u3002 \u6bd4\u5982 \u4f7f\u7528 Clash \uff0c \u9996\u5148 \u5728 \u914d\u7f6e \u9875\u9762 \u4e0b \u6839\u636e \u8ba2\u9605 \u94fe\u63a5 \u8fdb\u884c \u4e0b\u8f7d \uff0c \u7136\u540e \u5728 \u5e38\u89c4 \u9875\u9762 \u5f00\u542f \u7cfb\u7edf \u4ee3\u7406 \uff0c \u6700\u540e \u6d4b\u8bd5 \u662f\u5426 \u53ef\u4ee5 \u6b63\u5e38 \u79d1\u5b66 \u4e0a\u7f51 \u3002 Ubuntu \u4e0b \u7684 \u914d\u7f6e Linux \u79d1\u5b66 \u4e0a\u7f51 \u914d\u7f6e \u6559\u7a0b \u3002 \u4e0b\u8f7d clash \u3002 \u9996\u6b21 \u542f\u52a8 clash \uff0c \u4f1a \u65b0\u5efa \u6587\u4ef6 ~ / . config / clash / config . yaml \uff1a cd $ HOME / . config / clash / \u5c06 Clash \u4e2d \u7684 \u8ba2\u9605 \u5730\u5740 \u5199\u5165 config . yaml \u6587\u4ef6 \u3002 \u6253\u5f00 Ubuntu \u7684 \u201c \u8bbe\u7f6e \u201d \u7ba1\u7406 \uff0c \u5728 \u201c \u7f51\u7edc \u201d \u5185 \u5c06 \u201c \u7f51\u7edc \u4ee3\u7406 \u201d \u7684 \u201c \u81ea\u52a8 \u201d \u6539\u4e3a \u201c \u624b\u52a8 \u201d \uff0c \u6839\u636e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u8fdb\u884c \u586b\u5199 HTTP \u3001 HTTPS \u548c Socks \u5730\u5740 # HTTP \u4ee3\u7406 127.0 . 0.1 : 7890 # HTTPS \u4ee3\u7406 127.0 . 0.1 : 7890 # Socks \u4e3b\u673a 127.0 . 0.1 : 7891 TortoiseGit \u7f51\u7edc \u4ee3\u7406 \u914d\u7f6e \u5982\u679c \u4f7f\u7528 TortoiseGit \u4f5c\u4e3a git \u7684 \u56fe\u5f62 \u56fe\u5f62\u5316 \u754c\u9762 \u8f6f\u4ef6 \uff0c \u9996\u9875 \u5728 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u7a7a\u767d \u4f4d\u7f6e \u53f3\u952e \uff0c \u9009\u62e9 TortoiseGit - > Setting \uff0c \u7136\u540e \u5728 \u5f39\u51fa \u7684 \u754c\u9762 \u8fdb\u884c \u5982\u4e0b \u914d\u7f6e \uff1a \u5176\u4ed6 \u865a\u5e7b \u5f15\u64ce commandlet \u865a\u5e7b \u5f15\u64ce \u7ba1\u7ebf","title":"\u4ece \u6e90\u4ee3\u7801 \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 \u5728 Linux \u4e0a \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u6784\u5efa \u5728 Windows \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u6784\u5efa \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa Carla"},{"location":"build_carla/#_1","text":"\u53c2\u8003 \u5176\u4e2d \u7684 \u4e00\u4e2a \u94fe\u63a5 \u8fdb\u884c \u79d1\u5b66 \u4e0a\u7f51 \u7684 \u8ba2\u9605 \u548c \u73af\u5883 \u914d\u7f6e \uff1a \u94fe\u63a5 1 \u3001 \u94fe\u63a5 2 \u3001 \u94fe\u63a5 3 \u3001 \u94fe\u63a5 4 \u3002 \u6bd4\u5982 \u4f7f\u7528 Clash \uff0c \u9996\u5148 \u5728 \u914d\u7f6e \u9875\u9762 \u4e0b \u6839\u636e \u8ba2\u9605 \u94fe\u63a5 \u8fdb\u884c \u4e0b\u8f7d \uff0c \u7136\u540e \u5728 \u5e38\u89c4 \u9875\u9762 \u5f00\u542f \u7cfb\u7edf \u4ee3\u7406 \uff0c \u6700\u540e \u6d4b\u8bd5 \u662f\u5426 \u53ef\u4ee5 \u6b63\u5e38 \u79d1\u5b66 \u4e0a\u7f51 \u3002","title":"\u79d1\u5b66 \u4e0a\u7f51 "},{"location":"build_carla/#ubuntu","text":"Linux \u79d1\u5b66 \u4e0a\u7f51 \u914d\u7f6e \u6559\u7a0b \u3002 \u4e0b\u8f7d clash \u3002 \u9996\u6b21 \u542f\u52a8 clash \uff0c \u4f1a \u65b0\u5efa \u6587\u4ef6 ~ / . config / clash / config . yaml \uff1a cd $ HOME / . config / clash / \u5c06 Clash \u4e2d \u7684 \u8ba2\u9605 \u5730\u5740 \u5199\u5165 config . yaml \u6587\u4ef6 \u3002 \u6253\u5f00 Ubuntu \u7684 \u201c \u8bbe\u7f6e \u201d \u7ba1\u7406 \uff0c \u5728 \u201c \u7f51\u7edc \u201d \u5185 \u5c06 \u201c \u7f51\u7edc \u4ee3\u7406 \u201d \u7684 \u201c \u81ea\u52a8 \u201d \u6539\u4e3a \u201c \u624b\u52a8 \u201d \uff0c \u6839\u636e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u8fdb\u884c \u586b\u5199 HTTP \u3001 HTTPS \u548c Socks \u5730\u5740 # HTTP \u4ee3\u7406 127.0 . 0.1 : 7890 # HTTPS \u4ee3\u7406 127.0 . 0.1 : 7890 # Socks \u4e3b\u673a 127.0 . 0.1 : 7891","title":"Ubuntu \u4e0b \u7684 \u914d\u7f6e"},{"location":"build_carla/#tortoisegit","text":"\u5982\u679c \u4f7f\u7528 TortoiseGit \u4f5c\u4e3a git \u7684 \u56fe\u5f62 \u56fe\u5f62\u5316 \u754c\u9762 \u8f6f\u4ef6 \uff0c \u9996\u9875 \u5728 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u7a7a\u767d \u4f4d\u7f6e \u53f3\u952e \uff0c \u9009\u62e9 TortoiseGit - > Setting \uff0c \u7136\u540e \u5728 \u5f39\u51fa \u7684 \u754c\u9762 \u8fdb\u884c \u5982\u4e0b \u914d\u7f6e \uff1a","title":"TortoiseGit \u7f51\u7edc \u4ee3\u7406 \u914d\u7f6e"},{"location":"build_carla/#_2","text":"\u865a\u5e7b \u5f15\u64ce commandlet \u865a\u5e7b \u5f15\u64ce \u7ba1\u7ebf","title":"\u5176\u4ed6"},{"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":"Build docker"},{"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 \u4e13\u4e1a \u95ee\u9898 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \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 osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9 \u7c7b\u578b \u8f6c\u6362 \u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9 \u94fe\u63a5 \u4e0d\u5230 osm2odr . lib \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 ValueError : sticky _ control : invalid value type \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 ) \u6ce8\u610f \uff1a \u6ce8\u610f vs2019 \u4e13\u4e1a \u4e13\u4e1a\u7248 \u624d \u6709 \u8fd9\u4e2a \u95ee\u9898 \uff0c vs2019 \u793e\u533a \u7248 \u6ca1\u6709 \u8fd9\u4e2a \u95ee\u9898 \u3002 \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 ValueError : sticky _ control : invalid value type \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \u7684 PythonAPI \u7248\u672c \u4e0d \u4e00\u81f4 \uff0c \u5728 dev \u5206\u652f \u5f00\u53d1 \u65f6\u4f1a \u51fa\u73b0 \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":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66","title":"\u4e13\u4e1a \u95ee\u9898"},{"location":"build_faq/#_3","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 osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9 \u7c7b\u578b \u8f6c\u6362 \u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9 \u94fe\u63a5 \u4e0d\u5230 osm2odr . lib","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 ValueError : sticky _ control : invalid value type","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#_4","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/#_5","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/#_6","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/#_7","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 ) \u6ce8\u610f \uff1a \u6ce8\u610f vs2019 \u4e13\u4e1a \u4e13\u4e1a\u7248 \u624d \u6709 \u8fd9\u4e2a \u95ee\u9898 \uff0c vs2019 \u793e\u533a \u7248 \u6ca1\u6709 \u8fd9\u4e2a \u95ee\u9898 \u3002","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/#_8","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/#_9","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/#valueerror-sticky_control-invalid-value-type","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \u7684 PythonAPI \u7248\u672c \u4e0d \u4e00\u81f4 \uff0c \u5728 dev \u5206\u652f \u5f00\u53d1 \u65f6\u4f1a \u51fa\u73b0 \u3002","title":"ValueError : sticky _ control : invalid value type "},{"location":"build_faq/#_10","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 \u5176\u4ed6 \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 24.04 # \u663e\u5361 \u9a71\u52a8 \u4f7f\u7528 nvidia - driver - 470 - server \uff08 \u8f6c\u6709 \uff09 # \u5df2\u7ecf \u5b89\u88c5 \u4e86 clang - 14 # sudo apt install g ++- 10 # sudo apt - get install clang ++- 10 # \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u5b89\u88c5 llvm - 10 sudo apt install gcc - multilib git clone -- branch release / 10 . x -- recursive https : / / github . com / llvm / llvm - project cd llvm - project / llvm cmake - G \" Unix Makefiles \" - DCMAKE _ BUILD _ TYPE = Release - DLLVM _ ENABLE _ PROJECTS = lld - DCMAKE _ INSTALL _ PREFIX = / usr / local / llvm - 10 .. make - j8 sudo make install # / usr / local / llvm - 10 / bin # \u7f16\u8bd1 clang - 10 \uff08 \u9ed8\u8ba4 LLVM \u7f16\u8bd1 \u5b8c \u6ca1\u6709 clang \uff09 # \u56de\u5230 llvm - project \u76ee\u5f55 cd llvm - project / clang / mkdir build cd build cmake - G \" Unix Makefiles \" - DCMAKE _ BUILD _ TYPE = Release - DCMAKE _ INSTALL _ PREFIX = / usr / local / clang - 10 .. make - j8 sudo make install # \u521b\u5efa \u8f6f \u94fe\u63a5 sudo ln - s / usr / local / clang - 10 / bin / clang ++ / usr / bin / clang ++ sudo ln - s / usr / local / clang - 10 / bin / clang / usr / bin / clang # \u68c0\u67e5 \u7248\u672c clang -- version # \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u5b89\u88c5 gcc - 7 wget http : / / ftp . gnu . org / gnu / gcc / gcc - 7.5 . 0 / gcc - 7.5 . 0 . tar . gz tar - zxvf gcc - 7.5 . 0 . tar . gz cd gcc - 7.5 . 0 mkdir build cd build .. / configure -- prefix = / usr / local / gcc - 7 # \u5f00\u59cb \u914d\u7f6e \u5b89\u88c5 # \u5982\u679c \u5b89\u88c5 \u7f3a\u5c11 \u7684 \u5e93 \uff0c \u5219 \u8fd0\u884c \u4e0b\u9762 \u8fd9 \u4e00\u6761 \u547d\u4ee4 sudo apt - get install libgmp - dev libmpfr - dev libmpc - dev gcc - multilib g ++- multilib # \u518d\u6b21 \u4f7f\u7528 \u4e0b\u9762 \u547d\u4ee4 \u6784\u5efa \u5b89\u88c5 \u73af\u5883 .. / configure -- enable - multilib # \u6784\u5efa \u5b8c\u6210 \u540e \u5f97\u5230 \u4e00\u4e2a Makefile \u6587\u4ef6 \u3002 \u5f00\u59cb \u7f16\u8bd1 make - j8 # - j \u9009\u9879 \u540e \u7684 \u6570\u5b57 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u673a\u5668 \u7684 \u903b\u8f91 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u6570\u91cf sudo make install # \u521b\u5efa \u8f6f \u94fe\u63a5 sudo ln - s / usr / local / clang - 10 / bin / clang ++ / usr / bin / g ++ sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / bin / clang ++- 14 180 sudo update - alternatives -- install / usr / bin / clang clang / usr / bin / clang - 14 180 sudo update - alternatives -- install / usr / bin / g ++ g ++ / usr / bin / g ++- 12 180 \u8b66\u544a \u6784\u5efa \u65f6 \u5bf9 Util / BuildTools / Setup . sh \u6240 \u505a \u7684 \u4fee\u6539 \uff1a 1 . \u6784\u5efa boost \u65f6 \uff0c \u6267\u884c . / bootstrap . sh \u7684 \u547d\u4ee4 \u4e2d \u53bb \u9664\u4e86 -- with - toolset = clang \u9009\u9879 \u3002 2 . \u5bf9 rcplib \u6267\u884c cmake \u65f6 \uff0c \u53bb \u9664\u4e86 - stdlib = lib c++ \u9009\u9879 \u3002 Ubuntu 22.04 sudo apt - add - repository \" deb http : / / archive . ubuntu . com / ubuntu focal main universe \" sudo apt - get update sudo apt - get install build - essential clang - 10 lld - 10 g ++- 7 cmake ninja - build libvulkan1 python python3 python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git git - lfs # update - alternatives \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 -- install \u8868\u793a \u5411 update - alternatives \u6ce8\u518c \u670d\u52a1 \u540d \u3002 # \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u6ce8\u518c \u6700\u7ec8 \u5730\u5740 \uff0c \u6210\u529f \u540e \u5c06 \u4f1a \u628a \u547d\u4ee4 \u5728 \u8fd9\u4e2a \u56fa\u5b9a \u7684 \u76ee\u7684 \u5730\u5740 \u505a \u771f\u5b9e \u547d\u4ee4 \u7684 \u8f6f\u94fe \uff0c \u4ee5\u540e \u7ba1\u7406 \u5c31\u662f \u7ba1\u7406 \u8fd9\u4e2a \u8f6f\u94fe \uff1b # \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \uff1a \u670d\u52a1 \u540d \uff0c \u4ee5\u540e \u7ba1\u7406 \u65f6\u4ee5 \u5b83 \u4e3a \u5173\u8054 \u4f9d\u636e \u3002 # \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u53c2\u6570 \uff0c \u88ab \u7ba1\u7406 \u7684 \u547d\u4ee4 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 # \u7b2c\u4e94 \u4e94\u4e2a \u7b2c\u4e94\u4e2a \u53c2\u6570 \uff0c \u4f18\u5148 \u4f18\u5148\u7ea7 \uff0c \u6570\u5b57 \u8d8a\u5927 \u4f18\u5148 \u4f18\u5148\u7ea7 \u8d8a\u9ad8 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 10 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 10 / bin / clang 180 && sudo update - alternatives -- install / usr / bin / g ++ g ++ / usr / bin / g ++- 7 180 Ubuntu 20.04 sudo apt - add - repository \" deb http : / / apt . llvm . org / focal / llvm - toolchain - focal main \" sudo apt - get update sudo apt - get install build - essential clang - 10 lld - 10 g ++- 7 cmake ninja - build libvulkan1 python python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 10 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 10 / bin / clang 180 Ubuntu 18.04 . sudo apt - add - repository \" deb http : / / apt . llvm . org / bionic / llvm - toolchain - bionic main \" sudo apt - get update 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 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 Ubuntu 16.04 . sudo apt - add - repository \" deb http : / / apt . llvm . org / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update 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 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 \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 make check \u8fdb\u884c \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \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 \u95ee\u9898 \u6267\u884c make Python \u65f6\u62a5 \u9519 \uff1a A C++ 11 capable compiler is required for building the B2 engine . Toolset ' clang ' does not appear to support C++ 11 . \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 \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa"},{"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 \u5176\u4ed6","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 24.04 # \u663e\u5361 \u9a71\u52a8 \u4f7f\u7528 nvidia - driver - 470 - server \uff08 \u8f6c\u6709 \uff09 # \u5df2\u7ecf \u5b89\u88c5 \u4e86 clang - 14 # sudo apt install g ++- 10 # sudo apt - get install clang ++- 10 # \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u5b89\u88c5 llvm - 10 sudo apt install gcc - multilib git clone -- branch release / 10 . x -- recursive https : / / github . com / llvm / llvm - project cd llvm - project / llvm cmake - G \" Unix Makefiles \" - DCMAKE _ BUILD _ TYPE = Release - DLLVM _ ENABLE _ PROJECTS = lld - DCMAKE _ INSTALL _ PREFIX = / usr / local / llvm - 10 .. make - j8 sudo make install # / usr / local / llvm - 10 / bin # \u7f16\u8bd1 clang - 10 \uff08 \u9ed8\u8ba4 LLVM \u7f16\u8bd1 \u5b8c \u6ca1\u6709 clang \uff09 # \u56de\u5230 llvm - project \u76ee\u5f55 cd llvm - project / clang / mkdir build cd build cmake - G \" Unix Makefiles \" - DCMAKE _ BUILD _ TYPE = Release - DCMAKE _ INSTALL _ PREFIX = / usr / local / clang - 10 .. make - j8 sudo make install # \u521b\u5efa \u8f6f \u94fe\u63a5 sudo ln - s / usr / local / clang - 10 / bin / clang ++ / usr / bin / clang ++ sudo ln - s / usr / local / clang - 10 / bin / clang / usr / bin / clang # \u68c0\u67e5 \u7248\u672c clang -- version # \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u5b89\u88c5 gcc - 7 wget http : / / ftp . gnu . org / gnu / gcc / gcc - 7.5 . 0 / gcc - 7.5 . 0 . tar . gz tar - zxvf gcc - 7.5 . 0 . tar . gz cd gcc - 7.5 . 0 mkdir build cd build .. / configure -- prefix = / usr / local / gcc - 7 # \u5f00\u59cb \u914d\u7f6e \u5b89\u88c5 # \u5982\u679c \u5b89\u88c5 \u7f3a\u5c11 \u7684 \u5e93 \uff0c \u5219 \u8fd0\u884c \u4e0b\u9762 \u8fd9 \u4e00\u6761 \u547d\u4ee4 sudo apt - get install libgmp - dev libmpfr - dev libmpc - dev gcc - multilib g ++- multilib # \u518d\u6b21 \u4f7f\u7528 \u4e0b\u9762 \u547d\u4ee4 \u6784\u5efa \u5b89\u88c5 \u73af\u5883 .. / configure -- enable - multilib # \u6784\u5efa \u5b8c\u6210 \u540e \u5f97\u5230 \u4e00\u4e2a Makefile \u6587\u4ef6 \u3002 \u5f00\u59cb \u7f16\u8bd1 make - j8 # - j \u9009\u9879 \u540e \u7684 \u6570\u5b57 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u673a\u5668 \u7684 \u903b\u8f91 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u6570\u91cf sudo make install # \u521b\u5efa \u8f6f \u94fe\u63a5 sudo ln - s / usr / local / clang - 10 / bin / clang ++ / usr / bin / g ++ sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / bin / clang ++- 14 180 sudo update - alternatives -- install / usr / bin / clang clang / usr / bin / clang - 14 180 sudo update - alternatives -- install / usr / bin / g ++ g ++ / usr / bin / g ++- 12 180 \u8b66\u544a \u6784\u5efa \u65f6 \u5bf9 Util / BuildTools / Setup . sh \u6240 \u505a \u7684 \u4fee\u6539 \uff1a 1 . \u6784\u5efa boost \u65f6 \uff0c \u6267\u884c . / bootstrap . sh \u7684 \u547d\u4ee4 \u4e2d \u53bb \u9664\u4e86 -- with - toolset = clang \u9009\u9879 \u3002 2 . \u5bf9 rcplib \u6267\u884c cmake \u65f6 \uff0c \u53bb \u9664\u4e86 - stdlib = lib c++ \u9009\u9879 \u3002 Ubuntu 22.04 sudo apt - add - repository \" deb http : / / archive . ubuntu . com / ubuntu focal main universe \" sudo apt - get update sudo apt - get install build - essential clang - 10 lld - 10 g ++- 7 cmake ninja - build libvulkan1 python python3 python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git git - lfs # update - alternatives \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 -- install \u8868\u793a \u5411 update - alternatives \u6ce8\u518c \u670d\u52a1 \u540d \u3002 # \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u6ce8\u518c \u6700\u7ec8 \u5730\u5740 \uff0c \u6210\u529f \u540e \u5c06 \u4f1a \u628a \u547d\u4ee4 \u5728 \u8fd9\u4e2a \u56fa\u5b9a \u7684 \u76ee\u7684 \u5730\u5740 \u505a \u771f\u5b9e \u547d\u4ee4 \u7684 \u8f6f\u94fe \uff0c \u4ee5\u540e \u7ba1\u7406 \u5c31\u662f \u7ba1\u7406 \u8fd9\u4e2a \u8f6f\u94fe \uff1b # \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \uff1a \u670d\u52a1 \u540d \uff0c \u4ee5\u540e \u7ba1\u7406 \u65f6\u4ee5 \u5b83 \u4e3a \u5173\u8054 \u4f9d\u636e \u3002 # \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u53c2\u6570 \uff0c \u88ab \u7ba1\u7406 \u7684 \u547d\u4ee4 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 # \u7b2c\u4e94 \u4e94\u4e2a \u7b2c\u4e94\u4e2a \u53c2\u6570 \uff0c \u4f18\u5148 \u4f18\u5148\u7ea7 \uff0c \u6570\u5b57 \u8d8a\u5927 \u4f18\u5148 \u4f18\u5148\u7ea7 \u8d8a\u9ad8 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 10 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 10 / bin / clang 180 && sudo update - alternatives -- install / usr / bin / g ++ g ++ / usr / bin / g ++- 7 180 Ubuntu 20.04 sudo apt - add - repository \" deb http : / / apt . llvm . org / focal / llvm - toolchain - focal main \" sudo apt - get update sudo apt - get install build - essential clang - 10 lld - 10 g ++- 7 cmake ninja - build libvulkan1 python python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 10 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 10 / bin / clang 180 Ubuntu 18.04 . sudo apt - add - repository \" deb http : / / apt . llvm . org / bionic / llvm - toolchain - bionic main \" sudo apt - get update 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 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 Ubuntu 16.04 . sudo apt - add - repository \" deb http : / / apt . llvm . org / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update 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 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 \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 make check \u8fdb\u884c \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5","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","title":"\u5176\u4ed6 "},{"location":"build_linux/#_8","text":"\u6267\u884c make Python \u65f6\u62a5 \u9519 \uff1a A C++ 11 capable compiler is required for building the B2 engine . Toolset ' clang ' does not appear to support C++ 11 . \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":"\u95ee\u9898"},{"location":"build_linux_ue5/","text":"\u8b66\u544a \u8fd9\u662f \u4e00\u9879 \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff01 \uff01 \u8fd9\u4e2a \u7248\u672c \u7684 Carla \u4e0d \u88ab \u8ba4\u4e3a \u662f \u4e00\u4e2a \u7a33\u5b9a \u7684 \u7248\u672c \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u51e0\u4e2a \u6708 \u91cc \uff0c \u8fd9\u4e2a \u5206\u652f \u53ef\u80fd \u4f1a \u53d1\u751f \u8bb8\u591a \u91cd\u5927 \u53d8\u5316 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u7834\u574f \u60a8 \u6240 \u505a \u7684 \u4efb\u4f55 \u4fee\u6539 \u3002 \u6211\u4eec \u5efa\u8bae \u4f60 \u628a \u8fd9\u4e2a \u5206\u652f \u5f53\u4f5c \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 \u3002 \u5728 Linux \u4e2d \u4f7f\u7528 Unreal Engine 5.3 \u6784\u5efa \u7b14\u8bb0 \u8fd9\u4e2a \u6784\u5efa \u8fc7\u7a0b \u662f \u4e3a Ubuntu 22.04 \u5b9e\u73b0 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u8fd9\u4e2a Ubuntu \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4f7f\u7528 Unreal Engine 5.3 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u5728 \u60a8 \u7684 \u672c\u5730 \u673a\u5668 \u4e0a \u514b\u9686 Carla \u7684 ue5 - dev \u5206\u652f \uff1a git clone - b ue5 - dev https : / / github . com / carla - simulator / carla . git CarlaUE5 \u8fd0\u884c \u5b89\u88c5 \u811a\u672c \uff1a cd CarlaUE5 bash - x Setup . sh Setup . sh \u811a\u672c \u5b89\u88c5 \u6240\u6709 \u5fc5\u9700 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u5305\u62ec Cmake \u3001 debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3001 Python \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u548c Unreal Engine 5.3 \u3002 \u5b83 \u8fd8 \u4e0b\u8f7d Carla \u5185\u5bb9 \u5e76 \u6784\u5efa Carla \u3002 \u56e0\u6b64 \uff0c \u6b64 \u811a\u672c \u53ef\u80fd \u9700\u8981 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u6ce8\u610f \uff1a * \u8fd9\u4e2a \u7248\u672c \u7684 Carla \u9700\u8981 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce 5.3 \u7684 Carla \u5206\u53c9 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u514b\u9686 UE \u5b58\u50a8 \u5e93 \u7684 \u6743\u9650 \uff0c \u60a8 \u9700\u8981 \u5c06 GitHub \u5e10\u6237 \u94fe\u63a5 \u5230 Epic Games \u3002 \u5982\u679c \u60a8 \u5c1a\u672a \u94fe\u63a5 \u60a8 \u7684 \u5e10\u6237 \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002 \u8981 \u4f7f\u7528 Carla Unreal Engine 5 \u4ee5\u524d \u7684 \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5b9a\u4e49 \u4e86 \u6307\u5411 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u5b9a\u4e49 \u7684 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u6b64 \u53d8\u91cf \uff0c Setup . sh \u811a\u672c \u5c06 \u4e0b\u8f7d \u5e76 \u6784\u5efa Carla Unreal Engine 5 \uff0c \u8fd9 \u9700\u8981 \u989d\u5916 1 \u4e2a \u591a \u5c0f\u65f6 \u7684 \u6784\u5efa \u548c 225Gb \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Setup . sh \u811a\u672c \u68c0\u67e5 PATH \u53d8\u91cf \u9876\u90e8 \u662f\u5426 \u5b89\u88c5 \u4e86 \u4efb\u4f55 Python \uff0c \u5426\u5219 \u5b89\u88c5 Python \u3002 \u8981 \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5728 \u8fd0\u884c \u811a\u672c \u4e4b\u524d \u4e3a Python \u6b63\u786e \u8bbe\u7f6e \u4e86 PATH \u53d8\u91cf \u3002 Carla \u4e0d\u80fd \u5728 \u5916\u90e8 \u78c1\u76d8 \u4e0a \u6784\u5efa \uff0c Ubuntu \u6ca1\u6709 \u4e3a \u6784\u5efa \u63d0\u4f9b \u6240 \u9700 \u7684 \u8bfb / \u5199 / \u6267\u884c \u6743\u9650 \u3002 \u6784\u5efa \u5e76 \u8fd0\u884c Carla UE5 \u5b89\u88c5 \u811a\u672c \u672c\u8eab \u542f\u52a8 \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e00\u65e6 \u4fee\u6539 \u4ee3\u7801 \u5e76 \u5e0c\u671b \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a \u914d\u7f6e \uff1a cmake - G Ninja - S . - B Build -- toolchain = $ PWD / CMake / LinuxToolchain . cmake \\ - DLAUNCH _ ARGS = \" - prefernvidia \" - DCMAKE _ BUILD _ TYPE = Release - DENABLE _ ROS2 = ON \\ - DBUILD _ CARLA _ UNREAL = ON - DCARLA _ UNREAL _ ENGINE _ PATH = $ CARLA _ UNREAL _ ENGINE _ PATH \u6784\u5efa Carla : cmake -- build Build \u6784\u5efa \u5e76 \u5b89\u88c5 Python API \uff1a cmake -- build Build -- target carla - python - api - install \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff1a cmake -- build Build -- target launch \u4f7f\u7528 CARLA UE5 \u6784\u5efa \u5305 cmake -- build Build -- target package \u8be5 \u5305\u4f1a \u5728 \u76ee\u5f55 $ CARLA _ PATH / Build / Package \u4e0b \u751f\u6210 \u3002 \u8fd0\u884c \u5305 \u4f7f\u7528 \u4e0b\u5217 \u547d\u4ee4 \u8fd0\u884c \u5305 \u3002 . / CarlaUnreal . sh \u5982\u679c \u4f60 \u60f3 \u8fd0\u884c \u539f\u751f \u7684 ROS2 \u63a5\u53e3 \uff0c \u6dfb\u52a0 -- ros2 \u547d\u4ee4 . / CarlaUnreal . sh -- ros2 \u5982\u679c \u60a8 \u60f3\u8981 \u5b89\u88c5 \u4e0e \u60a8 \u6240 \u6784\u5efa \u7684 \u5305 \u76f8\u5bf9 \u5e94 \u7684 Python API \uff1a pip3 install PythonAPI / carla / dist / carla - * . whl \u95ee\u9898 \u7cfb\u7edf \u5b89\u88c5 Ubuntu 20.04 \u6ca1\u6709 g ++- 12 \u7684 \u6e90 \uff0c \u53ea\u6709 g ++- 9 \u7684 \u6e90 \u3002 \u800c Ubuntu 22.04 \u6709 g ++- 12 \u7684 \u6e90 \u3002 \u89e3\u51b3 ubuntu \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u5b89\u88c5 \u754c\u9762 \u9ed1\u5c4f \u7684 \u95ee\u9898 \uff1a u \u76d8 \u542f\u52a8 \u8fc7\u7a0b \u4e2d \uff0c \u4f1a \u51fa\u73b0 \u9009\u62e9 \u754c\u9762 \uff0c try ubuntu \u3001 install ubuntu \u7b49 \uff0c \u6b64\u65f6 \u70b9 \u201c e \u201d \u952e \uff0c \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u9ed1\u6846 \uff0c \u6b64\u65f6 \u5728 \u5012\u6570 \u7b2c\u4e8c \u4e8c\u884c \u7b2c\u4e8c\u884c \u5de6\u53f3 \uff0c \u627e\u5230 quiet splash - - - \u6539\u6210 quiet splash acpi = off \u518d\u6b21 \u542f\u52a8 \u65f6 \uff0c \u4ecd\u7136 \u4f1a \u9ed1\u5c4f \uff0c \u8fdb\u4e0d\u53bb \u3002 \u9700\u8981 \u7981\u7528 nouveau \uff0c \u7136\u540e \u518d \u8fdb\u5165 \u7cfb\u7edf \u4e2d \u5b89\u88c5 \u663e\u5361 \u9a71\u52a8 \u3002 vi / etc / modprobe . d / blacklist . conf \u6700\u540e \u4e00\u884c \u52a0\u4e0a blacklist nouveau \u3002 \u4f7f \u4e4b \u751f\u6548 \uff1a update - initramfs - u \u7136\u540e \u8f93\u5165 reboot \u91cd\u542f \u3002 \u7f16\u8bd1 bin / clang \" is not able to compile a simple test program . clang ++ -- version \u786e\u5b9a clang \u6ca1\u6709 \u5b89\u88c5 \uff0c \u6267\u884c \uff1a sudo apt - get install clang \u8fd8\u662f \u627e \u4e0d\u5230 \uff01 \uff01 \uff01 Carla \u5207\u6362 \u5230 ue5 - dev \u5206\u652f \uff1a git checkout - b ue5 - dev origin / ue5 - dev bash - x \u4e2d \u7684 \u53c2\u6570 - x \u4f1a \u5217\u51fa shell \u6307\u5b9a \u8bed\u53e5 \u7684 \u987a\u5e8f \u5e76 \u5c06 \u5176 \u6253\u5370 \u3002 \u62a5\u9519 \uff1a error : externally - managed - environment \u539f\u56e0 \uff1a \u8868\u793a \u5f53\u524d Python \u73af\u5883 \u662f \u7531 \u7cfb\u7edf \u5916\u90e8 \u7ba1\u7406 \u7684 \uff0c \u901a\u5e38 \u5728 \u67d0\u4e9b Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \uff08 \u5c24\u5176 \u662f Debian \u548c \u57fa\u4e8e Debian \u7684 \u7cfb\u7edf \uff0c \u6bd4\u5982 Ubuntu \uff09 \uff0c \u7cfb\u7edf \u4f1a \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4e0d\u8981 \u76f4\u63a5 \u4f7f\u7528 pip \u6765 \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u4ee5 \u907f\u514d \u4e0e \u7cfb\u7edf \u5305 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff08 \u5982 apt \uff09 \u7684 \u6f5c\u5728 \u51b2\u7a81 \u3002 \u89e3\u51b3 \uff1a \u65b0\u5efa Python \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 cmake \u65f6\u5019 \u62a5\u9519 \uff1a cannot find / lib64 / ld - linux - x86 - 64 . so.2","title":"Build linux ue5"},{"location":"build_linux_ue5/#linux-unreal-engine-53","text":"\u7b14\u8bb0 \u8fd9\u4e2a \u6784\u5efa \u8fc7\u7a0b \u662f \u4e3a Ubuntu 22.04 \u5b9e\u73b0 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u8fd9\u4e2a Ubuntu \u7248\u672c \u3002","title":"\u5728 Linux \u4e2d \u4f7f\u7528 Unreal Engine 5.3 \u6784\u5efa"},{"location":"build_linux_ue5/#_1","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4f7f\u7528 Unreal Engine 5.3 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u5728 \u60a8 \u7684 \u672c\u5730 \u673a\u5668 \u4e0a \u514b\u9686 Carla \u7684 ue5 - dev \u5206\u652f \uff1a git clone - b ue5 - dev https : / / github . com / carla - simulator / carla . git CarlaUE5 \u8fd0\u884c \u5b89\u88c5 \u811a\u672c \uff1a cd CarlaUE5 bash - x Setup . sh Setup . sh \u811a\u672c \u5b89\u88c5 \u6240\u6709 \u5fc5\u9700 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u5305\u62ec Cmake \u3001 debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3001 Python \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u548c Unreal Engine 5.3 \u3002 \u5b83 \u8fd8 \u4e0b\u8f7d Carla \u5185\u5bb9 \u5e76 \u6784\u5efa Carla \u3002 \u56e0\u6b64 \uff0c \u6b64 \u811a\u672c \u53ef\u80fd \u9700\u8981 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u6ce8\u610f \uff1a * \u8fd9\u4e2a \u7248\u672c \u7684 Carla \u9700\u8981 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce 5.3 \u7684 Carla \u5206\u53c9 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u514b\u9686 UE \u5b58\u50a8 \u5e93 \u7684 \u6743\u9650 \uff0c \u60a8 \u9700\u8981 \u5c06 GitHub \u5e10\u6237 \u94fe\u63a5 \u5230 Epic Games \u3002 \u5982\u679c \u60a8 \u5c1a\u672a \u94fe\u63a5 \u60a8 \u7684 \u5e10\u6237 \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002 \u8981 \u4f7f\u7528 Carla Unreal Engine 5 \u4ee5\u524d \u7684 \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5b9a\u4e49 \u4e86 \u6307\u5411 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u5b9a\u4e49 \u7684 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u6b64 \u53d8\u91cf \uff0c Setup . sh \u811a\u672c \u5c06 \u4e0b\u8f7d \u5e76 \u6784\u5efa Carla Unreal Engine 5 \uff0c \u8fd9 \u9700\u8981 \u989d\u5916 1 \u4e2a \u591a \u5c0f\u65f6 \u7684 \u6784\u5efa \u548c 225Gb \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Setup . sh \u811a\u672c \u68c0\u67e5 PATH \u53d8\u91cf \u9876\u90e8 \u662f\u5426 \u5b89\u88c5 \u4e86 \u4efb\u4f55 Python \uff0c \u5426\u5219 \u5b89\u88c5 Python \u3002 \u8981 \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5728 \u8fd0\u884c \u811a\u672c \u4e4b\u524d \u4e3a Python \u6b63\u786e \u8bbe\u7f6e \u4e86 PATH \u53d8\u91cf \u3002 Carla \u4e0d\u80fd \u5728 \u5916\u90e8 \u78c1\u76d8 \u4e0a \u6784\u5efa \uff0c Ubuntu \u6ca1\u6709 \u4e3a \u6784\u5efa \u63d0\u4f9b \u6240 \u9700 \u7684 \u8bfb / \u5199 / \u6267\u884c \u6743\u9650 \u3002","title":"\u8bbe\u7f6e \u73af\u5883"},{"location":"build_linux_ue5/#carla-ue5","text":"\u5b89\u88c5 \u811a\u672c \u672c\u8eab \u542f\u52a8 \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e00\u65e6 \u4fee\u6539 \u4ee3\u7801 \u5e76 \u5e0c\u671b \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a \u914d\u7f6e \uff1a cmake - G Ninja - S . - B Build -- toolchain = $ PWD / CMake / LinuxToolchain . cmake \\ - DLAUNCH _ ARGS = \" - prefernvidia \" - DCMAKE _ BUILD _ TYPE = Release - DENABLE _ ROS2 = ON \\ - DBUILD _ CARLA _ UNREAL = ON - DCARLA _ UNREAL _ ENGINE _ PATH = $ CARLA _ UNREAL _ ENGINE _ PATH \u6784\u5efa Carla : cmake -- build Build \u6784\u5efa \u5e76 \u5b89\u88c5 Python API \uff1a cmake -- build Build -- target carla - python - api - install \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff1a cmake -- build Build -- target launch","title":"\u6784\u5efa \u5e76 \u8fd0\u884c Carla UE5"},{"location":"build_linux_ue5/#carla-ue5_1","text":"cmake -- build Build -- target package \u8be5 \u5305\u4f1a \u5728 \u76ee\u5f55 $ CARLA _ PATH / Build / Package \u4e0b \u751f\u6210 \u3002","title":"\u4f7f\u7528 CARLA UE5 \u6784\u5efa \u5305"},{"location":"build_linux_ue5/#_2","text":"\u4f7f\u7528 \u4e0b\u5217 \u547d\u4ee4 \u8fd0\u884c \u5305 \u3002 . / CarlaUnreal . sh \u5982\u679c \u4f60 \u60f3 \u8fd0\u884c \u539f\u751f \u7684 ROS2 \u63a5\u53e3 \uff0c \u6dfb\u52a0 -- ros2 \u547d\u4ee4 . / CarlaUnreal . sh -- ros2 \u5982\u679c \u60a8 \u60f3\u8981 \u5b89\u88c5 \u4e0e \u60a8 \u6240 \u6784\u5efa \u7684 \u5305 \u76f8\u5bf9 \u5e94 \u7684 Python API \uff1a pip3 install PythonAPI / carla / dist / carla - * . whl","title":"\u8fd0\u884c \u5305"},{"location":"build_linux_ue5/#_3","text":"","title":"\u95ee\u9898"},{"location":"build_linux_ue5/#_4","text":"Ubuntu 20.04 \u6ca1\u6709 g ++- 12 \u7684 \u6e90 \uff0c \u53ea\u6709 g ++- 9 \u7684 \u6e90 \u3002 \u800c Ubuntu 22.04 \u6709 g ++- 12 \u7684 \u6e90 \u3002 \u89e3\u51b3 ubuntu \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u5b89\u88c5 \u754c\u9762 \u9ed1\u5c4f \u7684 \u95ee\u9898 \uff1a u \u76d8 \u542f\u52a8 \u8fc7\u7a0b \u4e2d \uff0c \u4f1a \u51fa\u73b0 \u9009\u62e9 \u754c\u9762 \uff0c try ubuntu \u3001 install ubuntu \u7b49 \uff0c \u6b64\u65f6 \u70b9 \u201c e \u201d \u952e \uff0c \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u9ed1\u6846 \uff0c \u6b64\u65f6 \u5728 \u5012\u6570 \u7b2c\u4e8c \u4e8c\u884c \u7b2c\u4e8c\u884c \u5de6\u53f3 \uff0c \u627e\u5230 quiet splash - - - \u6539\u6210 quiet splash acpi = off \u518d\u6b21 \u542f\u52a8 \u65f6 \uff0c \u4ecd\u7136 \u4f1a \u9ed1\u5c4f \uff0c \u8fdb\u4e0d\u53bb \u3002 \u9700\u8981 \u7981\u7528 nouveau \uff0c \u7136\u540e \u518d \u8fdb\u5165 \u7cfb\u7edf \u4e2d \u5b89\u88c5 \u663e\u5361 \u9a71\u52a8 \u3002 vi / etc / modprobe . d / blacklist . conf \u6700\u540e \u4e00\u884c \u52a0\u4e0a blacklist nouveau \u3002 \u4f7f \u4e4b \u751f\u6548 \uff1a update - initramfs - u \u7136\u540e \u8f93\u5165 reboot \u91cd\u542f \u3002","title":"\u7cfb\u7edf \u5b89\u88c5"},{"location":"build_linux_ue5/#_5","text":"bin / clang \" is not able to compile a simple test program . clang ++ -- version \u786e\u5b9a clang \u6ca1\u6709 \u5b89\u88c5 \uff0c \u6267\u884c \uff1a sudo apt - get install clang \u8fd8\u662f \u627e \u4e0d\u5230 \uff01 \uff01 \uff01","title":"\u7f16\u8bd1"},{"location":"build_linux_ue5/#carla","text":"\u5207\u6362 \u5230 ue5 - dev \u5206\u652f \uff1a git checkout - b ue5 - dev origin / ue5 - dev bash - x \u4e2d \u7684 \u53c2\u6570 - x \u4f1a \u5217\u51fa shell \u6307\u5b9a \u8bed\u53e5 \u7684 \u987a\u5e8f \u5e76 \u5c06 \u5176 \u6253\u5370 \u3002 \u62a5\u9519 \uff1a error : externally - managed - environment \u539f\u56e0 \uff1a \u8868\u793a \u5f53\u524d Python \u73af\u5883 \u662f \u7531 \u7cfb\u7edf \u5916\u90e8 \u7ba1\u7406 \u7684 \uff0c \u901a\u5e38 \u5728 \u67d0\u4e9b Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \uff08 \u5c24\u5176 \u662f Debian \u548c \u57fa\u4e8e Debian \u7684 \u7cfb\u7edf \uff0c \u6bd4\u5982 Ubuntu \uff09 \uff0c \u7cfb\u7edf \u4f1a \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4e0d\u8981 \u76f4\u63a5 \u4f7f\u7528 pip \u6765 \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u4ee5 \u907f\u514d \u4e0e \u7cfb\u7edf \u5305 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff08 \u5982 apt \uff09 \u7684 \u6f5c\u5728 \u51b2\u7a81 \u3002 \u89e3\u51b3 \uff1a \u65b0\u5efa Python \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 cmake \u65f6\u5019 \u62a5\u9519 \uff1a cannot find / lib64 / ld - linux - x86 - 64 . so.2","title":"Carla"},{"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 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c carla _ server . lib carla _ server . lib \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":"\u6784\u5efa \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 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c carla _ server . lib carla _ server . lib \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_tools/","text":"Package . bat % UE4 _ ROOT% \\ Engine \\ Build \\ BatchFiles \\ Build . bat \u4f20\u9012 \u7684 \u53c2\u6570 \u5305\u62ec \uff1a * \u53c2\u6570 1 \uff1a \u6e38\u620f \u540d \uff08 CarlaUE4Editor \u3001 CarlaUE4 \uff09 * \u53c2\u6570 2 \uff1a \u5e73\u53f0 \u540d \uff08 Win64 \uff09 * \u53c2\u6570 3 \uff1a \u914d\u7f6e \u540d \uff08 Development \uff09 * - WaitMutex \uff1a \u662f\u5426 \u9700\u8981 \u7b49\u5f85 \u5176\u4ed6 \u9501 \u64cd\u4f5c \u6267\u884c \u5b8c \uff08 \u9ed8\u8ba4 \u662f False \uff09 * - FromMsBuild \uff1a \u662f\u5426 \u628a MSBuild \u7684 Log \u4e5f \u6253\u5370 \u5230 UBT \u7684 log \u7cfb\u7edf \u7684 \u8f93\u51fa \u4e2d \uff08 \u9ed8\u8ba4 \u662f false \uff09 * % ROOT _ PATH% Unreal / CarlaUE4 / CarlaUE4 . uproject \u81ea\u52a8 \u81ea\u52a8\u5316 \u5de5\u5177 % UE4 _ ROOT% \\ Engine \\ Build \\ BatchFiles \\ RunUAT . bat ( Unreal Automation Tool ) \u4f20\u9012 \u7684 \u53c2\u6570 \u5305\u62ec \uff1a * BuildCookRun \uff1a \u6784\u5efa \uff08 Build \uff09 \uff1a \u8be5 \u9636\u6bb5 \u5c06 \u4e3a \u6240 \u9009\u62e9 \u7684 \u5e73\u53f0 \u7f16\u8bd1 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u70d8\u57f9 \uff08 Cook \uff09 \uff1a \u8be5 \u9636\u6bb5 \u901a\u8fc7 \u5728 \u7279\u6b8a \u6a21\u5f0f \u4e0b \u6267\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u6765 \u8f6c\u5316 \u5185\u5bb9 \u3002 \u8fd0\u884c \uff08 Run \uff09 \uff1a \u8be5 \u9636\u6bb5 \u5728 \u76ee\u6807 \u5e73\u53f0 \u4e0a \u542f\u52a8 \u5df2 \u5c01\u88c5 \u7684 \u9879\u76ee \u3002 * nocompileeditor \uff1a \u4e0d \u5305\u62ec \u7f16\u8bd1 \u597d \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff1f * - TargetPlatform = Win64 \uff1a \u7f16\u8bd1 \u8bd1\u6210 \u7f16\u8bd1\u6210 \u7684 \u76ee\u6807 \u6587\u4ef6 * - Platform = Win64 \uff1a \u6240\u5728 \u6240\u5728\u5730 \u5e73\u53f0 * - installed * - nop4 \uff1a \u5728 \u6b64 \u6784\u5efa \u671f\u95f4 \u4e0d\u60f3 \u4e0e Perforce \u4ea4\u4e92 \uff08 \u76f8\u53cd \u662f \uff1a - P4 \uff09 * - project = \" % ROOT _ PATH% Unreal / CarlaUE4 / CarlaUE4 . uproject \" * - cook \uff1a \u8981 \u8fd0\u884c \u70d8\u57f9 \u6b65\u9aa4 * - stage \uff1a \u5c06 \u70d8\u57f9 \u7ed3\u679c \u4fdd\u5b58 \u5728 \u6682\u5b58 \u76ee\u5f55 \u4e2d * - build \uff1a \u8981 \u8fd0\u884c \u6784\u5efa \u6b65\u9aa4 * - archive \uff1a \u5e0c\u671b \u5c06 \u76ee\u5f55 \u4e2d \u7684 \u5b8c\u6574 \u8f93\u51fa \u5f52\u6863 * - archivedirectory = \" ! BUILD _ FOLDER ! \" \uff1a \u5f52\u6863 \u9879\u76ee \u7684 \u8def\u5f84 * - package \uff1a \u4e3a \u76ee\u6807 \u5e73\u53f0 \u521b\u5efa \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff08 \u4f8b\u5982 Mac \u4e0a \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6587\u4ef6 \uff0c Android \u4e0a \u7684 apk \u6216 iPhone \u4e0a \u7684 ipa \uff09 * - clientconfig = % PACKAGE _ CONFIG% \u53c2\u8003 UnrealBuildTool \u529f\u80fd \u6d41\u7a0b \u89e3\u6790","title":"Build tools"},{"location":"build_tools/#packagebat","text":"% UE4 _ ROOT% \\ Engine \\ Build \\ BatchFiles \\ Build . bat \u4f20\u9012 \u7684 \u53c2\u6570 \u5305\u62ec \uff1a * \u53c2\u6570 1 \uff1a \u6e38\u620f \u540d \uff08 CarlaUE4Editor \u3001 CarlaUE4 \uff09 * \u53c2\u6570 2 \uff1a \u5e73\u53f0 \u540d \uff08 Win64 \uff09 * \u53c2\u6570 3 \uff1a \u914d\u7f6e \u540d \uff08 Development \uff09 * - WaitMutex \uff1a \u662f\u5426 \u9700\u8981 \u7b49\u5f85 \u5176\u4ed6 \u9501 \u64cd\u4f5c \u6267\u884c \u5b8c \uff08 \u9ed8\u8ba4 \u662f False \uff09 * - FromMsBuild \uff1a \u662f\u5426 \u628a MSBuild \u7684 Log \u4e5f \u6253\u5370 \u5230 UBT \u7684 log \u7cfb\u7edf \u7684 \u8f93\u51fa \u4e2d \uff08 \u9ed8\u8ba4 \u662f false \uff09 * % ROOT _ PATH% Unreal / CarlaUE4 / CarlaUE4 . uproject \u81ea\u52a8 \u81ea\u52a8\u5316 \u5de5\u5177 % UE4 _ ROOT% \\ Engine \\ Build \\ BatchFiles \\ RunUAT . bat ( Unreal Automation Tool ) \u4f20\u9012 \u7684 \u53c2\u6570 \u5305\u62ec \uff1a * BuildCookRun \uff1a \u6784\u5efa \uff08 Build \uff09 \uff1a \u8be5 \u9636\u6bb5 \u5c06 \u4e3a \u6240 \u9009\u62e9 \u7684 \u5e73\u53f0 \u7f16\u8bd1 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u70d8\u57f9 \uff08 Cook \uff09 \uff1a \u8be5 \u9636\u6bb5 \u901a\u8fc7 \u5728 \u7279\u6b8a \u6a21\u5f0f \u4e0b \u6267\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u6765 \u8f6c\u5316 \u5185\u5bb9 \u3002 \u8fd0\u884c \uff08 Run \uff09 \uff1a \u8be5 \u9636\u6bb5 \u5728 \u76ee\u6807 \u5e73\u53f0 \u4e0a \u542f\u52a8 \u5df2 \u5c01\u88c5 \u7684 \u9879\u76ee \u3002 * nocompileeditor \uff1a \u4e0d \u5305\u62ec \u7f16\u8bd1 \u597d \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff1f * - TargetPlatform = Win64 \uff1a \u7f16\u8bd1 \u8bd1\u6210 \u7f16\u8bd1\u6210 \u7684 \u76ee\u6807 \u6587\u4ef6 * - Platform = Win64 \uff1a \u6240\u5728 \u6240\u5728\u5730 \u5e73\u53f0 * - installed * - nop4 \uff1a \u5728 \u6b64 \u6784\u5efa \u671f\u95f4 \u4e0d\u60f3 \u4e0e Perforce \u4ea4\u4e92 \uff08 \u76f8\u53cd \u662f \uff1a - P4 \uff09 * - project = \" % ROOT _ PATH% Unreal / CarlaUE4 / CarlaUE4 . uproject \" * - cook \uff1a \u8981 \u8fd0\u884c \u70d8\u57f9 \u6b65\u9aa4 * - stage \uff1a \u5c06 \u70d8\u57f9 \u7ed3\u679c \u4fdd\u5b58 \u5728 \u6682\u5b58 \u76ee\u5f55 \u4e2d * - build \uff1a \u8981 \u8fd0\u884c \u6784\u5efa \u6b65\u9aa4 * - archive \uff1a \u5e0c\u671b \u5c06 \u76ee\u5f55 \u4e2d \u7684 \u5b8c\u6574 \u8f93\u51fa \u5f52\u6863 * - archivedirectory = \" ! BUILD _ FOLDER ! \" \uff1a \u5f52\u6863 \u9879\u76ee \u7684 \u8def\u5f84 * - package \uff1a \u4e3a \u76ee\u6807 \u5e73\u53f0 \u521b\u5efa \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff08 \u4f8b\u5982 Mac \u4e0a \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6587\u4ef6 \uff0c Android \u4e0a \u7684 apk \u6216 iPhone \u4e0a \u7684 ipa \uff09 * - clientconfig = % PACKAGE _ CONFIG%","title":"Package . bat"},{"location":"build_tools/#_1","text":"UnrealBuildTool \u529f\u80fd \u6d41\u7a0b \u89e3\u6790","title":"\u53c2\u8003"},{"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":"\u66f4\u65b0 Carla"},{"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 \u5176\u4ed6 \u62a5\u9519 \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 \u751f\u6210 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 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 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 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 \u6784\u5efa \u4e00\u4e2a egg \u5206\u53d1 \u5305 \uff08 binary distribution \uff09 \uff0c \u4f1a \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e0b \u7684 \u201c dist \u201d \u76ee\u5f55 \u5185 \u521b\u5efa \u4e00\u4e2a \u201c egg \u201d \u6587\u4ef6 \uff0c \u6587\u4ef6 \u6587\u4ef6\u540d \u683c\u5f0f \u5c31\u662f \u201d \u9879\u76ee \u540d - \u7248\u672c \u7248\u672c\u53f7 - Python \u7248\u672c . egg \u201d \uff1a python setup . py bdist _ egg \u6784\u5efa \u4e00\u4e2a wheel \u5206\u53d1 \u5305 \uff0c egg \u5305\u662f \u8fc7\u65f6 \u7684 \uff0c whl \u5305\u662f \u65b0 \u7684 \u6807\u51c6 \uff1a python setup . py bdist _ wheel \u811a\u672c setup . py \u4e2d \u7684 ext _ modules \u53c2\u6570 \u7528\u4e8e \u6784\u5efa C \u548c C++ \u6269\u5c55 \u6269\u5c55 \u5305 \u3002 \u5176\u662f Extension \u5b9e\u4f8b \u7684 \u5217\u8868 \uff0c \u6bcf \u4e00\u4e2a Extension \u5b9e\u4f8b \u63cf\u8ff0 \u4e86 \u4e00\u4e2a \u72ec\u7acb \u7684 \u6269\u5c55 \u6a21\u5757 \uff0c \u6269\u5c55 \u6a21\u5757 \u53ef\u4ee5 \u8bbe\u7f6e \u6269\u5c55 \u5305\u540d \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u3001 \u6587\u4ef6 \u6e90\u6587\u4ef6 \u3001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u53ca\u5176 \u8def\u5f84 \u3001 \u5b8f \u5b9a\u4e49 \u548c \u7f16\u8f91 \u53c2\u6570 \u7b49 \u3002 \u5f53 \u4f60 \u5b89\u88c5 \u4e00\u4e2a \u4e00\u4e2a\u5305 \u540e \uff0c \u8fd9\u4e2a \u5305 \u9700\u8981 \u4f60 \u4e0d\u65ad \u4fee\u6539 \uff0c \u8fd9\u65f6 \u5c31 \u91c7\u7528 \u8fd9\u79cd \u5b89\u88c5 \u65b9\u6cd5 \uff1a python setup . py develop \u3002 \u4ec5 \u5728 Python37 / Lib / site - packages \u76ee\u5f55 \u4e0b \u751f\u6210 \u94fe\u63a5 \u6587\u4ef6 carla . egg - link \u6307\u5411 carla \\ PythonAPI \\ carla \\ source \u548c .. / \u3002 \u800c python setup . py install \u5728 Python37 \\ Lib \\ site - packages \\ carla - 0.9 . 15 - py3.7 - win - amd64 . egg \u76ee\u5f55 \u4e0b \u751f\u6210 \u8fd0\u884c \u5305 \uff0c \u5305\u62ec libcarla . cp37 - win _ amd64 . pyd \u3002 \u5176\u4ed6 \u5982\u679c \u60f3 \u91cd\u65b0 \u7f16\u8bd1 LibCarla \u6216\u8005 \u4f7f\u7528 \u6700\u65b0 \u7684 \u4fee\u6539 \uff0c \u9700\u8981 \u5220\u9664 Build / libcarla - visualstudio \u76ee\u5f55 \uff0c \u7136\u540e \u91cd\u65b0 \u8fd0\u884c \u7f16\u8bd1 \u547d\u4ee4 \uff1a make LibCarla \u5219 \u670d\u52a1 \u670d\u52a1\u7aef \u6587\u4ef6 carla _ server . lib \u751f\u6210 \u81f3 carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u6587\u4ef6 carla _ client . lib \u751f\u6210 \u81f3 carla \\ PythonAPI \\ carla \\ dependencies \\ \u3002 \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 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e2d \u4e4b\u524d \u5b89\u88c5 \u8fc7 vs \uff0c \u518d \u5b89\u88c5 \u65f6\u62a5 \u9519 \uff1a \u65e0\u6cd5 \u5b89\u88c5 Microsoft . VisualStudio . Debugger . JustInTime . Msi \u548c Could not open key : UNKNOWNComponents Werify that you have sufficient access to that key , or contact your support personnel . \u89e3\u51b3 \uff1a \u6ce8\u518c \u6ce8\u518c\u8868 \u7f16\u8f91 \u7f16\u8f91\u5668 \u65e0\u6cd5 \u5728 \u5f53\u524d \u6240\u9009 \u7684 \u9879 \u53ca\u5176 \u90e8\u5206 \u5b50\u9879 \u4e0a \u8bbe\u7f6e \u5b89\u5168 \u5b89\u5168\u6027 \u3002 \u6ce8\u610f \uff1a \u4f7f\u7528 \u5728\u7ebf \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 vs _ community __ 2019 . exe \u8fdb\u884c \u5b89\u88c5 \uff0c \u4e0d\u8981 \u4f7f\u7528 \u79bb\u7ebf \u7248 \u7684 vs2019 \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u5426\u5219 \u4f1a \u51fa\u73b0 \u9519\u8bef \uff1a \u7cfb\u7edf \u9519\u8bef \uff1a & H8007007E ( - 2147024770 ) \u3002 \u627e \u4e0d\u5230 \u6307\u5b9a \u7684 \u6a21\u5757 \u3002 \u53c2\u8003 \u6784\u5efa \u7cfb\u7edf \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 \u4e0b \u7684 \u6784\u5efa"},{"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 \u5176\u4ed6 \u62a5\u9519","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 \u751f\u6210 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 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/#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 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 \u6784\u5efa \u4e00\u4e2a egg \u5206\u53d1 \u5305 \uff08 binary distribution \uff09 \uff0c \u4f1a \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e0b \u7684 \u201c dist \u201d \u76ee\u5f55 \u5185 \u521b\u5efa \u4e00\u4e2a \u201c egg \u201d \u6587\u4ef6 \uff0c \u6587\u4ef6 \u6587\u4ef6\u540d \u683c\u5f0f \u5c31\u662f \u201d \u9879\u76ee \u540d - \u7248\u672c \u7248\u672c\u53f7 - Python \u7248\u672c . egg \u201d \uff1a python setup . py bdist _ egg \u6784\u5efa \u4e00\u4e2a wheel \u5206\u53d1 \u5305 \uff0c egg \u5305\u662f \u8fc7\u65f6 \u7684 \uff0c whl \u5305\u662f \u65b0 \u7684 \u6807\u51c6 \uff1a python setup . py bdist _ wheel \u811a\u672c setup . py \u4e2d \u7684 ext _ modules \u53c2\u6570 \u7528\u4e8e \u6784\u5efa C \u548c C++ \u6269\u5c55 \u6269\u5c55 \u5305 \u3002 \u5176\u662f Extension \u5b9e\u4f8b \u7684 \u5217\u8868 \uff0c \u6bcf \u4e00\u4e2a Extension \u5b9e\u4f8b \u63cf\u8ff0 \u4e86 \u4e00\u4e2a \u72ec\u7acb \u7684 \u6269\u5c55 \u6a21\u5757 \uff0c \u6269\u5c55 \u6a21\u5757 \u53ef\u4ee5 \u8bbe\u7f6e \u6269\u5c55 \u5305\u540d \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u3001 \u6587\u4ef6 \u6e90\u6587\u4ef6 \u3001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u53ca\u5176 \u8def\u5f84 \u3001 \u5b8f \u5b9a\u4e49 \u548c \u7f16\u8f91 \u53c2\u6570 \u7b49 \u3002 \u5f53 \u4f60 \u5b89\u88c5 \u4e00\u4e2a \u4e00\u4e2a\u5305 \u540e \uff0c \u8fd9\u4e2a \u5305 \u9700\u8981 \u4f60 \u4e0d\u65ad \u4fee\u6539 \uff0c \u8fd9\u65f6 \u5c31 \u91c7\u7528 \u8fd9\u79cd \u5b89\u88c5 \u65b9\u6cd5 \uff1a python setup . py develop \u3002 \u4ec5 \u5728 Python37 / Lib / site - packages \u76ee\u5f55 \u4e0b \u751f\u6210 \u94fe\u63a5 \u6587\u4ef6 carla . egg - link \u6307\u5411 carla \\ PythonAPI \\ carla \\ source \u548c .. / \u3002 \u800c python setup . py install \u5728 Python37 \\ Lib \\ site - packages \\ carla - 0.9 . 15 - py3.7 - win - amd64 . egg \u76ee\u5f55 \u4e0b \u751f\u6210 \u8fd0\u884c \u5305 \uff0c \u5305\u62ec libcarla . cp37 - win _ amd64 . pyd \u3002","title":"\u5176\u4ed6 make \u547d\u4ee4 "},{"location":"build_windows/#_9","text":"\u5982\u679c \u60f3 \u91cd\u65b0 \u7f16\u8bd1 LibCarla \u6216\u8005 \u4f7f\u7528 \u6700\u65b0 \u7684 \u4fee\u6539 \uff0c \u9700\u8981 \u5220\u9664 Build / libcarla - visualstudio \u76ee\u5f55 \uff0c \u7136\u540e \u91cd\u65b0 \u8fd0\u884c \u7f16\u8bd1 \u547d\u4ee4 \uff1a make LibCarla \u5219 \u670d\u52a1 \u670d\u52a1\u7aef \u6587\u4ef6 carla _ server . lib \u751f\u6210 \u81f3 carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u6587\u4ef6 carla _ client . lib \u751f\u6210 \u81f3 carla \\ PythonAPI \\ carla \\ dependencies \\ \u3002","title":"\u5176\u4ed6 "},{"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 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e2d \u4e4b\u524d \u5b89\u88c5 \u8fc7 vs \uff0c \u518d \u5b89\u88c5 \u65f6\u62a5 \u9519 \uff1a \u65e0\u6cd5 \u5b89\u88c5 Microsoft . VisualStudio . Debugger . JustInTime . Msi \u548c Could not open key : UNKNOWNComponents Werify that you have sufficient access to that key , or contact your support personnel . \u89e3\u51b3 \uff1a \u6ce8\u518c \u6ce8\u518c\u8868 \u7f16\u8f91 \u7f16\u8f91\u5668 \u65e0\u6cd5 \u5728 \u5f53\u524d \u6240\u9009 \u7684 \u9879 \u53ca\u5176 \u90e8\u5206 \u5b50\u9879 \u4e0a \u8bbe\u7f6e \u5b89\u5168 \u5b89\u5168\u6027 \u3002 \u6ce8\u610f \uff1a \u4f7f\u7528 \u5728\u7ebf \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 vs _ community __ 2019 . exe \u8fdb\u884c \u5b89\u88c5 \uff0c \u4e0d\u8981 \u4f7f\u7528 \u79bb\u7ebf \u7248 \u7684 vs2019 \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u5426\u5219 \u4f1a \u51fa\u73b0 \u9519\u8bef \uff1a \u7cfb\u7edf \u9519\u8bef \uff1a & H8007007E ( - 2147024770 ) \u3002 \u627e \u4e0d\u5230 \u6307\u5b9a \u7684 \u6a21\u5757 \u3002","title":"\u62a5\u9519 "},{"location":"build_windows/#_11","text":"\u6784\u5efa \u7cfb\u7edf \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":"\u53c2\u8003"},{"location":"build_windows_ue5/","text":"\u8b66\u544a \u8fd9\u662f \u4e00\u9879 \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff01 \uff01 \u8fd9\u4e2a \u7248\u672c \u7684 Carla \u4e0d \u88ab \u8ba4\u4e3a \u662f \u4e00\u4e2a \u7a33\u5b9a \u7684 \u7248\u672c \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u51e0\u4e2a \u6708 \u91cc \uff0c \u8fd9\u4e2a \u5206\u652f \u53ef\u80fd \u4f1a \u53d1\u751f \u8bb8\u591a \u91cd\u5927 \u53d8\u5316 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u7834\u574f \u60a8 \u6240 \u505a \u7684 \u4efb\u4f55 \u4fee\u6539 \u3002 \u6211\u4eec \u5efa\u8bae \u4f60 \u628a \u8fd9\u4e2a \u5206\u652f \u5f53\u4f5c \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 \u3002 \u5728 Windows \u4e2d \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u7f16\u8bd1 Carla \u8bbe\u7f6e \u73af\u5883 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u5728 \u672c\u5730 \u673a\u5668 \u4e0a \u514b\u9686 Carla \u7684 ue5 - dev \u5206\u652f \uff1a git clone - b ue5 - dev https : / / github . com / carla - simulator / carla . git CarlaUE5 \u8fd0\u884c \u5b89\u88c5 \u811a\u672c \uff1a cd CarlaUE5 Setup . bat Setup . bat \u811a\u672c \u4f1a \u5b89\u88c5 \u6240\u6709 \u5fc5\u9700 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u5305\u62ec Visual Studio 2022 \u3001 Cmake \u3001 Python \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u548c \u865a\u5e7b \u5f15\u64ce 5 \u3002 \u5b83 \u8fd8 \u4f1a \u4e0b\u8f7d Carla \u5185\u5bb9 \u5e76 \u6784\u5efa Carla \u3002 \u56e0\u6b64 \uff0c \u6b64 \u5904\u7406 \u6279\u5904\u7406 \u6587\u4ef6 \u53ef\u80fd \u9700\u8981 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u7b14\u8bb0 \u6b64 \u7248\u672c \u7684 Carla \u9700\u8981 \u865a\u5e7b \u5f15\u64ce 5.3 \u7684 Carla \u5206\u652f \u3002 \u60a8 \u9700\u8981 \u5c06 \u60a8 \u7684 GitHub \u5e10\u6237 \u94fe\u63a5 \u5230 Epic Games \uff0c \u624d\u80fd \u83b7\u5f97 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u7684 \u6743\u9650 \u3002 \u5982\u679c \u60a8 \u5c1a\u672a \u94fe\u63a5 \u60a8 \u7684 \u5e10\u6237 \uff0c \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u64cd\u4f5c \u8981 \u4f7f\u7528 Carla Unreal Engine 5 \u4ee5\u524d \u7684 \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5b9a\u4e49 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u6307\u5411 CARLA Unreal Engine 5 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u6b64 \u53d8\u91cf \uff0c Setup . bat \u811a\u672c \u5c06 \u4e0b\u8f7d \u5e76 \u6784\u5efa Carla Unreal Engine 5 \uff0c \u8fd9 \u9700\u8981 \u989d\u5916 1 \u4e2a \u591a \u5c0f\u65f6 \u7684 \u6784\u5efa \u65f6\u95f4 \u548c 225Gb \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Setup . bat \u811a\u672c \u68c0\u67e5 PATH \u53d8\u91cf \u9876\u90e8 \u662f\u5426 \u5b89\u88c5 \u4e86 \u4efb\u4f55 Python \u7248\u672c \uff0c \u5426\u5219 \u5b89\u88c5 Python \u3002 \u8981 \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5728 \u8fd0\u884c \u811a\u672c \u4e4b\u524d \u4e3a Python \u6b63\u786e \u8bbe\u7f6e \u4e86 PATH \u53d8\u91cf \u3002 \u5e94 \u6fc0\u6d3b Windows \u5f00\u53d1 \u5f00\u53d1\u8005 \u6a21\u5f0f \uff0c \u5426\u5219 \u6784\u5efa \u5c06 \u5931\u8d25 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002 Carla \u65e0\u6cd5 \u5728 \u5916\u90e8 \u78c1\u76d8 \u4e0a \u6784\u5efa \uff0c Windows \u6ca1\u6709 \u63d0\u4f9b \u6784\u5efa \u6240 \u9700 \u7684 \u8bfb / \u5199 / \u6267\u884c \u6743\u9650 \u3002 \u6784\u5efa \u5e76 \u8fd0\u884c Carla UE5 Setup . bat \u6587\u4ef6 \u672c\u8eab \u542f\u52a8 \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e00\u65e6 \u60a8 \u4fee\u6539 \u4ee3\u7801 \u5e76 \u5e0c\u671b \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a \u8b66\u544a \u786e\u4fdd \u5b9a\u4e49 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u6307\u5411 Carla Unreal Engine 5.3 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 Setup . bat \u8bbe\u7f6e \u6b64 \u53d8\u91cf \uff0c \u4f46 \u5982\u679c \u91c7\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u5b89\u88c5 \u8981\u6c42 \uff0c \u5219 \u53ef\u80fd \u65e0\u6cd5 \u8bbe\u7f6e \u3002 \u6b64\u5916 \uff0c Carla UE4 \u4f7f\u7528 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u662f UE4 _ ROOT \u3002 \u914d\u7f6e \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake - G Ninja - S . - B Build - DCMAKE _ BUILD _ TYPE = Release - DBUILD _ CARLA _ UNREAL = ON - DCARLA _ UNREAL _ ENGINE _ PATH = % CARLA _ UNREAL _ ENGINE _ PATH% \u6784\u5efa Carla \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build \u6784\u5efa \u5e76 \u5b89\u88c5 Python API \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target carla - python - api - install \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target launch \u4f7f\u7528 Carla UE5 \u6784\u5efa \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8b66\u544a Carla UE5 \u7684 \u6784\u5efa \u5305 \u5c1a\u672a \u9488\u5bf9 Windows \u8fdb\u884c \u5168\u9762 \u6d4b\u8bd5 \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target package \u8be5\u5305 \u5c06 \u5728 \u76ee\u5f55 Build / Package \u4e2d \u751f\u6210 \u8fd0\u884c \u5305 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6784\u5efa \u5c1a\u672a \u9488\u5bf9 Windows \u8fdb\u884c \u6d4b\u8bd5 \u3002 Ubuntu \u5b89\u88c5 \u5982\u679c \u5f15\u5bfc \u4e0d\u4e86 \u7cfb\u7edf \uff0c \u9700\u8981 \u5c06 \u5728 BIOS \u4e2d \u8bbe\u7f6e \u4e3a UEFI \u542f\u52a8 \u3002 \u5b89\u88c5 \u754c\u9762 \u5361\u6b7b \u5b8c quiet splash - - - \u6539\u6210 quiet splash acpi = off acpi = off \u662f \u5173\u95ed \u9ad8\u7ea7 \u7535\u6e90 \u7ba1\u7406 \u63a5\u53e3 \u3002 \u5982\u679c \u5fc5\u987b \u6dfb\u52a0 acpi = off \u4f7f ubuntu \u6210\u529f \u542f\u52a8 \uff0c \u5219 \u8868\u793a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u7684 ACPI \u4e0e \u8be5 \u7248\u672c \u7684 ubuntu \u4e0d \u517c\u5bb9 \u3002 \u95ee\u9898 \u65e0\u6cd5 \u5b89\u88c5 Microsoft . VisualStudio . Community . Msi \u5220\u9664 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 C \uff1a \\ Program Files \uff08 x86 \uff09 \\ Windows Kits \u540e \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u3002 \uff08 \u524d\u63d0 \u662f \u7528 \u7f51\u7edc \u5b89\u88c5 \u88c5\u7248 \u5b89\u88c5\u7248 \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 \uff0c \u4e0d\u80fd \u7528 \u79bb\u7ebf \u5b89\u88c5 \u88c5\u7248 \u5b89\u88c5\u7248 \uff09 VS2022 \u5b89\u88c5 \u65f6\u5019 \u51fa\u73b0 \u201c \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6b63 \u5fd9\u4e8e \u5b89\u88c5 \u4e00\u4e2a \u975e Visual Studio \u7684 \u7a0b\u5e8f \u201d \u6253\u5f00 \u201c \u4efb\u52a1 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u201d \u3002 \u5355\u51fb \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9009\u9879 \u9009\u9879\u5361 \u3002 \u67e5\u627e \u201c msiexec . exe \u201d \u8fdb\u7a0b \u3002 \u5982\u679c \u6709 \u4e00\u4e2a \u6216 \u591a\u4e2a \uff0c \u8bf7 \u5168\u90e8 \u9009\u4e2d \uff0c \u518d \u9009\u62e9 \u201c \u7ec8\u6b62 \u4efb\u52a1 \u201d \u3002 \u5b89\u88c5 python \u5305\u65f6 \u51fa\u73b0 \uff1a ValueError : check _ hostname requires server _ hostname \u89e3\u51b3 \uff1a \u5173\u95ed \u4ee3\u7406 \u3002 fatal : fetch - pack : invalid index - pack output git clone -- depth 1 https : / / gitlab . scm321 . com / ufx / xxxx . git","title":"Build windows ue5"},{"location":"build_windows_ue5/#windows-53-carla","text":"","title":"\u5728 Windows \u4e2d \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u7f16\u8bd1 Carla"},{"location":"build_windows_ue5/#_1","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u5728 \u672c\u5730 \u673a\u5668 \u4e0a \u514b\u9686 Carla \u7684 ue5 - dev \u5206\u652f \uff1a git clone - b ue5 - dev https : / / github . com / carla - simulator / carla . git CarlaUE5 \u8fd0\u884c \u5b89\u88c5 \u811a\u672c \uff1a cd CarlaUE5 Setup . bat Setup . bat \u811a\u672c \u4f1a \u5b89\u88c5 \u6240\u6709 \u5fc5\u9700 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u5305\u62ec Visual Studio 2022 \u3001 Cmake \u3001 Python \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u548c \u865a\u5e7b \u5f15\u64ce 5 \u3002 \u5b83 \u8fd8 \u4f1a \u4e0b\u8f7d Carla \u5185\u5bb9 \u5e76 \u6784\u5efa Carla \u3002 \u56e0\u6b64 \uff0c \u6b64 \u5904\u7406 \u6279\u5904\u7406 \u6587\u4ef6 \u53ef\u80fd \u9700\u8981 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u7b14\u8bb0 \u6b64 \u7248\u672c \u7684 Carla \u9700\u8981 \u865a\u5e7b \u5f15\u64ce 5.3 \u7684 Carla \u5206\u652f \u3002 \u60a8 \u9700\u8981 \u5c06 \u60a8 \u7684 GitHub \u5e10\u6237 \u94fe\u63a5 \u5230 Epic Games \uff0c \u624d\u80fd \u83b7\u5f97 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u7684 \u6743\u9650 \u3002 \u5982\u679c \u60a8 \u5c1a\u672a \u94fe\u63a5 \u60a8 \u7684 \u5e10\u6237 \uff0c \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u64cd\u4f5c \u8981 \u4f7f\u7528 Carla Unreal Engine 5 \u4ee5\u524d \u7684 \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5b9a\u4e49 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u6307\u5411 CARLA Unreal Engine 5 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u6b64 \u53d8\u91cf \uff0c Setup . bat \u811a\u672c \u5c06 \u4e0b\u8f7d \u5e76 \u6784\u5efa Carla Unreal Engine 5 \uff0c \u8fd9 \u9700\u8981 \u989d\u5916 1 \u4e2a \u591a \u5c0f\u65f6 \u7684 \u6784\u5efa \u65f6\u95f4 \u548c 225Gb \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Setup . bat \u811a\u672c \u68c0\u67e5 PATH \u53d8\u91cf \u9876\u90e8 \u662f\u5426 \u5b89\u88c5 \u4e86 \u4efb\u4f55 Python \u7248\u672c \uff0c \u5426\u5219 \u5b89\u88c5 Python \u3002 \u8981 \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5728 \u8fd0\u884c \u811a\u672c \u4e4b\u524d \u4e3a Python \u6b63\u786e \u8bbe\u7f6e \u4e86 PATH \u53d8\u91cf \u3002 \u5e94 \u6fc0\u6d3b Windows \u5f00\u53d1 \u5f00\u53d1\u8005 \u6a21\u5f0f \uff0c \u5426\u5219 \u6784\u5efa \u5c06 \u5931\u8d25 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002 Carla \u65e0\u6cd5 \u5728 \u5916\u90e8 \u78c1\u76d8 \u4e0a \u6784\u5efa \uff0c Windows \u6ca1\u6709 \u63d0\u4f9b \u6784\u5efa \u6240 \u9700 \u7684 \u8bfb / \u5199 / \u6267\u884c \u6743\u9650 \u3002","title":"\u8bbe\u7f6e \u73af\u5883"},{"location":"build_windows_ue5/#carla-ue5","text":"Setup . bat \u6587\u4ef6 \u672c\u8eab \u542f\u52a8 \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e00\u65e6 \u60a8 \u4fee\u6539 \u4ee3\u7801 \u5e76 \u5e0c\u671b \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a \u8b66\u544a \u786e\u4fdd \u5b9a\u4e49 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u6307\u5411 Carla Unreal Engine 5.3 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 Setup . bat \u8bbe\u7f6e \u6b64 \u53d8\u91cf \uff0c \u4f46 \u5982\u679c \u91c7\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u5b89\u88c5 \u8981\u6c42 \uff0c \u5219 \u53ef\u80fd \u65e0\u6cd5 \u8bbe\u7f6e \u3002 \u6b64\u5916 \uff0c Carla UE4 \u4f7f\u7528 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u662f UE4 _ ROOT \u3002 \u914d\u7f6e \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake - G Ninja - S . - B Build - DCMAKE _ BUILD _ TYPE = Release - DBUILD _ CARLA _ UNREAL = ON - DCARLA _ UNREAL _ ENGINE _ PATH = % CARLA _ UNREAL _ ENGINE _ PATH% \u6784\u5efa Carla \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build \u6784\u5efa \u5e76 \u5b89\u88c5 Python API \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target carla - python - api - install \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target launch","title":"\u6784\u5efa \u5e76 \u8fd0\u884c Carla UE5"},{"location":"build_windows_ue5/#carla-ue5_1","text":"\u8b66\u544a Carla UE5 \u7684 \u6784\u5efa \u5305 \u5c1a\u672a \u9488\u5bf9 Windows \u8fdb\u884c \u5168\u9762 \u6d4b\u8bd5 \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target package \u8be5\u5305 \u5c06 \u5728 \u76ee\u5f55 Build / Package \u4e2d \u751f\u6210","title":"\u4f7f\u7528 Carla UE5 \u6784\u5efa \u8f6f\u4ef6\u5305"},{"location":"build_windows_ue5/#_2","text":"\u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6784\u5efa \u5c1a\u672a \u9488\u5bf9 Windows \u8fdb\u884c \u6d4b\u8bd5 \u3002","title":"\u8fd0\u884c \u5305"},{"location":"build_windows_ue5/#ubuntu","text":"\u5982\u679c \u5f15\u5bfc \u4e0d\u4e86 \u7cfb\u7edf \uff0c \u9700\u8981 \u5c06 \u5728 BIOS \u4e2d \u8bbe\u7f6e \u4e3a UEFI \u542f\u52a8 \u3002 \u5b89\u88c5 \u754c\u9762 \u5361\u6b7b \u5b8c quiet splash - - - \u6539\u6210 quiet splash acpi = off acpi = off \u662f \u5173\u95ed \u9ad8\u7ea7 \u7535\u6e90 \u7ba1\u7406 \u63a5\u53e3 \u3002 \u5982\u679c \u5fc5\u987b \u6dfb\u52a0 acpi = off \u4f7f ubuntu \u6210\u529f \u542f\u52a8 \uff0c \u5219 \u8868\u793a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u7684 ACPI \u4e0e \u8be5 \u7248\u672c \u7684 ubuntu \u4e0d \u517c\u5bb9 \u3002","title":"Ubuntu \u5b89\u88c5"},{"location":"build_windows_ue5/#_3","text":"\u65e0\u6cd5 \u5b89\u88c5 Microsoft . VisualStudio . Community . Msi \u5220\u9664 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 C \uff1a \\ Program Files \uff08 x86 \uff09 \\ Windows Kits \u540e \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u3002 \uff08 \u524d\u63d0 \u662f \u7528 \u7f51\u7edc \u5b89\u88c5 \u88c5\u7248 \u5b89\u88c5\u7248 \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 \uff0c \u4e0d\u80fd \u7528 \u79bb\u7ebf \u5b89\u88c5 \u88c5\u7248 \u5b89\u88c5\u7248 \uff09 VS2022 \u5b89\u88c5 \u65f6\u5019 \u51fa\u73b0 \u201c \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6b63 \u5fd9\u4e8e \u5b89\u88c5 \u4e00\u4e2a \u975e Visual Studio \u7684 \u7a0b\u5e8f \u201d \u6253\u5f00 \u201c \u4efb\u52a1 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u201d \u3002 \u5355\u51fb \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9009\u9879 \u9009\u9879\u5361 \u3002 \u67e5\u627e \u201c msiexec . exe \u201d \u8fdb\u7a0b \u3002 \u5982\u679c \u6709 \u4e00\u4e2a \u6216 \u591a\u4e2a \uff0c \u8bf7 \u5168\u90e8 \u9009\u4e2d \uff0c \u518d \u9009\u62e9 \u201c \u7ec8\u6b62 \u4efb\u52a1 \u201d \u3002 \u5b89\u88c5 python \u5305\u65f6 \u51fa\u73b0 \uff1a ValueError : check _ hostname requires server _ hostname \u89e3\u51b3 \uff1a \u5173\u95ed \u4ee3\u7406 \u3002 fatal : fetch - pack : invalid index - pack output git clone -- depth 1 https : / / gitlab . scm321 . com / ufx / xxxx . git","title":"\u95ee\u9898"},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ee3\u7406 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ee3\u7406"},{"location":"carla_ad_agent/#carla","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406"},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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_design/","text":"Carla \u8bbe\u8ba1 \u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 Carla \u7531 \u4ee5\u4e0b \u6a21\u5757 \u7ec4\u6210 \u5ba2\u6237 \u5ba2\u6237\u7aef Python \u5ba2\u6237 \u5ba2\u6237\u7aef API \uff1a \u201c PythonClient / carla \u201d \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef CarlaUE4 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee \uff1a \u201c Unreal / CarlaUE4 \u201d \u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6 \uff1a \u201c Unreal / CarlaUE4 / Plugins / Carla \u201d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u201c Util / CarlaServer \u201d \u7b14\u8bb0 \u901a\u8fc7 \u5728 Carla \u9879\u76ee \u4e3b \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c Doxygen \u53ef\u4ee5 \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \u3002 Python \u5ba2\u6237 \u5ba2\u6237\u7aef API \u5ba2\u6237 \u5ba2\u6237\u7aef API \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7528\u4e8e \u4e0e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 Python \u6a21\u5757 \u3002 \u5728 \u201c PythonClient \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u4f7f\u7528 \u201c carla \u201d \u6a21\u5757 \u7f16\u5199 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u811a\u672c \u7684 \u793a\u4f8b \u3002 CarlaUE4 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee Unreal \u9879\u76ee \u201c CarlaUE4 \u201d \u5305\u542b \u751f\u6210 Carla \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u6240\u6709 \u8d44\u4ea7 \u548c \u573a\u666f \u3002 \u5b83 \u4f7f\u7528 Carla \u63d2\u4ef6 \u63d0\u4f9b \u7684 \u5de5\u5177 \u6765 \u7ec4\u88c5 \u573a\u666f \u4e2d \u7684 \u57ce\u5e02 \u548c \u4ee3\u7406 \u7684 \u884c\u4e3a \u3002 \u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6 Carla \u63d2\u4ef6 \u5305\u542b Carla \u7684 \u6240\u6709 \u529f\u80fd \u3002 \u6211\u4eec \u5c1d\u8bd5 \u5c06 \u6b64 \u529f\u80fd \u4e0e \u8d44\u4ea7 \u5206\u5f00 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee \u4e2d \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a\u5730 \u4f7f\u7528 \u6b64 \u63d2\u4ef6 \u4e2d \u7684 \u529f\u80fd \u3002 \u5b83 \u4f7f\u7528 \u201c CarlaServer \u201d \u5e93 \u8fdb\u884c \u7f51\u7edc \u901a\u4fe1 \u7f51\u7edc\u901a\u4fe1 \u3002 CarlaServer \u7528\u4e8e \u7f51\u7edc \u901a\u4fe1 \u7f51\u7edc\u901a\u4fe1 \u7684 \u5916\u90e8 \u5e93 \u3002 \u6709\u5173 \u5b9e\u65bd \u7ec6\u8282 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u201c CarlaServer \u201d \u3002","title":"Carla \u8bbe\u8ba1"},{"location":"carla_design/#carla","text":"\u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 Carla \u7531 \u4ee5\u4e0b \u6a21\u5757 \u7ec4\u6210 \u5ba2\u6237 \u5ba2\u6237\u7aef Python \u5ba2\u6237 \u5ba2\u6237\u7aef API \uff1a \u201c PythonClient / carla \u201d \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef CarlaUE4 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee \uff1a \u201c Unreal / CarlaUE4 \u201d \u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6 \uff1a \u201c Unreal / CarlaUE4 / Plugins / Carla \u201d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u201c Util / CarlaServer \u201d \u7b14\u8bb0 \u901a\u8fc7 \u5728 Carla \u9879\u76ee \u4e3b \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c Doxygen \u53ef\u4ee5 \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \u3002","title":"Carla \u8bbe\u8ba1"},{"location":"carla_design/#python-api","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef API \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7528\u4e8e \u4e0e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 Python \u6a21\u5757 \u3002 \u5728 \u201c PythonClient \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u4f7f\u7528 \u201c carla \u201d \u6a21\u5757 \u7f16\u5199 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u811a\u672c \u7684 \u793a\u4f8b \u3002","title":"Python \u5ba2\u6237\u7aef API"},{"location":"carla_design/#carlaue4","text":"Unreal \u9879\u76ee \u201c CarlaUE4 \u201d \u5305\u542b \u751f\u6210 Carla \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u6240\u6709 \u8d44\u4ea7 \u548c \u573a\u666f \u3002 \u5b83 \u4f7f\u7528 Carla \u63d2\u4ef6 \u63d0\u4f9b \u7684 \u5de5\u5177 \u6765 \u7ec4\u88c5 \u573a\u666f \u4e2d \u7684 \u57ce\u5e02 \u548c \u4ee3\u7406 \u7684 \u884c\u4e3a \u3002","title":"CarlaUE4 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee"},{"location":"carla_design/#carla_1","text":"Carla \u63d2\u4ef6 \u5305\u542b Carla \u7684 \u6240\u6709 \u529f\u80fd \u3002 \u6211\u4eec \u5c1d\u8bd5 \u5c06 \u6b64 \u529f\u80fd \u4e0e \u8d44\u4ea7 \u5206\u5f00 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee \u4e2d \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a\u5730 \u4f7f\u7528 \u6b64 \u63d2\u4ef6 \u4e2d \u7684 \u529f\u80fd \u3002 \u5b83 \u4f7f\u7528 \u201c CarlaServer \u201d \u5e93 \u8fdb\u884c \u7f51\u7edc \u901a\u4fe1 \u7f51\u7edc\u901a\u4fe1 \u3002","title":"\u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6"},{"location":"carla_design/#carlaserver","text":"\u7528\u4e8e \u7f51\u7edc \u901a\u4fe1 \u7f51\u7edc\u901a\u4fe1 \u7684 \u5916\u90e8 \u5e93 \u3002 \u6709\u5173 \u5b9e\u65bd \u7ec6\u8282 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u201c CarlaServer \u201d \u3002","title":"CarlaServer"},{"location":"carla_headless/","text":"\u65e0 \u663e\u793a \u663e\u793a\u5c4f \u8fd0\u884c CARLA \u5e76 \u9009\u62e9 GPU \u7b14\u8bb0 \u53c2\u9605 \u8bf7\u53c2\u9605 # 225 \u4e86\u89e3 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u672c \u6559\u7a0b \u9002\u7528 \u4e8e \u62e5\u6709 \u591a \u5f20 nvidia \u663e\u5361 \u5e76 \u5e0c\u671b \u5728 \u6240\u6709 GPU \u4e0a \u6709\u6548 \u4f7f\u7528 CARLA \u7684 \u8fdc\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7528\u6237 \u3002 \u60f3\u8981 \u4f7f\u7528 \u672a \u63d2 \u5728 \u5c4f\u5e55 \u4e0a \u7684 GPU \u6765 \u6e32\u67d3 CARLA \u7684 \u684c\u9762 \u7528\u6237 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f60 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u914d\u7f6e \u60a8 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u8ba9 nvidia \u5728 \u672a \u8fde\u63a5 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fdb\u884c \u6e32\u67d3 \u3002 \u5982\u4f55 \u4f7f\u7528 VNC + VGL \u6a21\u62df \u8fde\u63a5 \u5230 \u60a8 \u673a\u5668 \u4e2d \u4efb\u4f55 GPU \u7684 \u663e\u793a \u663e\u793a\u5668 \u3002 \u6700\u540e \uff0c \u5982\u4f55 \u5728 \u6b64 \u73af\u5883 \u8fd0\u884c \u73af\u5883\u4e2d\u8fd0\u884c CARLA \u672c \u6559\u7a0b \u5728 Ubuntu 16.04 \u4e2d \u4f7f\u7528 NVIDIA 384.11 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u51c6\u5907 \u5de5\u4f5c \u60a8 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u9700\u8981 \u5148 \u8fd0\u884c \u4e00\u4e9b \u7a0b\u5e8f \u3002 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u3001 OpenGL \u3001 VirtualGL ( VGL ) \u3001 TurboVNC 2.11 \u3002 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4e0b\u8f7d \u5e76 \u5b89\u88c5 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4ee5\u53ca \u5178\u578b \u6559\u7a0b \u3002 OpenGL Openg GL \u662f Virtual GL \u6240 \u5fc5\u9700 \u7684 \u3002 \u901a\u5e38 \u53ef\u4ee5 \u901a\u8fc7 apt \u5b89\u88c5 OpenGL \u3002 sudo apt - get install freeglut3 - dev mesa - utils VGL \u6309\u7167 \u672c \u6559\u7a0b \u5b89\u88c5 vgl \uff1a \u5b89\u88c5 VGL TurboVNC \u6309\u7167 \u4ee5\u4e0b \u6559\u7a0b \u5b89\u88c5 TurboVNC 2.11 \uff1a \u5b89\u88c5 TurboVNC \u8b66\u544a \uff1a \u8bf7 \u8c28\u614e \u5b89\u88c5 VNC \uff0c \u56e0\u4e3a \u5b83 \u53ef\u80fd \u4e0e Unreal \u4e0d \u517c\u5bb9 \u3002 \u4e0a\u9762 \u7684 \u90a3\u4e2a \u662f \u552f\u4e00 \u5bf9 \u6211 \u6709\u7528 \u7684 \u3002 \u989d\u5916 \u7684 \u5305 \u8fd9\u4e9b \u989d\u5916 \u7684 \u5305 \u5bf9\u4e8e \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd0\u884c \u662f \u5fc5\u9700 \u7684 \u3002 ` ` ` shell script sudo apt install x11 - xserver - utils libxrandr - dev ### \u914d\u7f6e \u4f60 \u7684 X \u60a8 \u5fc5\u987b \u751f\u6210 \u4e0e \u60a8 \u7684 nvdia \u517c\u5bb9 \u7684 X \uff0c \u5e76\u4e14 \u517c\u5bb9 \u5728 \u65e0 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u3002 \u4e3a\u6b64 \uff0c \u4ee5\u4e0b \u547d\u4ee4 \u6709\u6548 \uff1a ` ` ` shell script sudo nvidia - xconfig - a -- use - display - device = None -- virtual = 1280x1024 \u6a21\u62df \u865a\u62df \u663e\u793a \u8fd0\u884c \u4f60 \u81ea\u5df1 \u7684 Xorg \u3002 \u8fd9\u91cc \u6211 \u4f7f\u7528 \u6570\u5b57 7 \uff0c \u4f46 \u5b83 \u53ef\u4ee5 \u6807\u8bb0 \u4e3a \u4efb\u4f55 \u81ea\u7531 \u6570\u5b57 ` ` ` shell script sudo nohup Xorg : 7 & \u8fd0\u884c \u8f85\u52a9 \u8fdc\u7a0b VNC - Xserver \u3002 \u8fd9 \u5c06 \u521b\u5efa \u865a\u62df \u663e\u793a \u663e\u793a\u5668 \u201c 8 \u201d \u3002 ` ` ` shell script / opt / TurboVNC / bin / vncserver : 8 \u5982\u679c \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \uff0c \u4ee5\u4e0b \u547d\u4ee4 \u5e94\u8be5 \u53ef\u4ee5 \u987a\u5229 \u8fd0\u884c \u3002 ` ` ` shell script DISPLAY = : 8 vglrun - d : 7.0 glxinfo \u6ce8\u610f \u3002 \u8fd9 \u5c06 \u5728 Xserver 7 \u3001 \u8bbe\u5907 0 \u4e0a \u8fd0\u884c glxinfo \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u60a8 \u6b63\u5728 \u9009\u62e9 \u673a\u5668 \u4e0a \u7684 GPU 0 \u3002 \u8981 \u5728 \u5176\u4ed6 GPU \uff08 \u4f8b\u5982 GPU 1 \uff09 \u4e0a \u8fd0\u884c \uff0c \u8bf7 \u8fd0\u884c \uff1a ` ` ` shell script DISPLAY = : 8 vglrun - d : 7.1 glxinfo \u989d\u5916 \u7684 \u5982\u679c \u60a8 \u5e0c\u671b \u5728 \u521b\u5efa \u201c nohup Xorg \u201d \u65f6 \u7981\u7528 sudo \uff0c \u8bf7 \u8f6c\u5230 \u201c / etc / X11 / Xwrapper . config \u201d \u6587\u4ef6 \u5e76 \u5c06 \u201c allowed _ users = console \u201d \u66f4 \u6539\u4e3a \u201c allowed _ users = anybody \u201d \u5728 \u8fd0\u884c nohup Xorg \u4e4b\u524d \u53ef\u80fd \u9700\u8981 \u505c\u6b62 \u6240\u6709 Xorg \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8be5 \u547d\u4ee4 \u53ef\u80fd \u56e0 \u60a8 \u7684 \u7cfb\u7edf \u800c\u5f02 \u3002 \u901a\u5e38 \u5bf9\u4e8e Ubuntu 16.04 \uff0c \u60a8 \u5e94\u8be5 \u4f7f\u7528 \uff1a ` ` ` shell script sudo service lightdm stop ## \u8fd0\u884c CARLA \u73b0\u5728 \uff0c \u6700\u540e \uff0c \u8981 \u5728 \u67d0\u4e2a $ CARLA _ PATH \u4e2d \u7684 \u67d0\u4e2a gpu _ number \u4e0a \u8fd0\u884c CARLA \uff0c \u8bf7 \u8fd0\u884c \u3002 ` ` ` shell script DISPLAY = : 8 vglrun - d : 7 . < gpu _ number > $ CARLA _ PATH / CarlaUE4 / Binaries / Linux / CarlaUE4","title":"\u65e0 \u663e\u793a\u5c4f \u8fd0\u884c CARLA \u5e76 \u9009\u62e9 GPU"},{"location":"carla_headless/#carla-gpu","text":"\u7b14\u8bb0 \u53c2\u9605 \u8bf7\u53c2\u9605 # 225 \u4e86\u89e3 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u672c \u6559\u7a0b \u9002\u7528 \u4e8e \u62e5\u6709 \u591a \u5f20 nvidia \u663e\u5361 \u5e76 \u5e0c\u671b \u5728 \u6240\u6709 GPU \u4e0a \u6709\u6548 \u4f7f\u7528 CARLA \u7684 \u8fdc\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7528\u6237 \u3002 \u60f3\u8981 \u4f7f\u7528 \u672a \u63d2 \u5728 \u5c4f\u5e55 \u4e0a \u7684 GPU \u6765 \u6e32\u67d3 CARLA \u7684 \u684c\u9762 \u7528\u6237 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f60 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u914d\u7f6e \u60a8 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u8ba9 nvidia \u5728 \u672a \u8fde\u63a5 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fdb\u884c \u6e32\u67d3 \u3002 \u5982\u4f55 \u4f7f\u7528 VNC + VGL \u6a21\u62df \u8fde\u63a5 \u5230 \u60a8 \u673a\u5668 \u4e2d \u4efb\u4f55 GPU \u7684 \u663e\u793a \u663e\u793a\u5668 \u3002 \u6700\u540e \uff0c \u5982\u4f55 \u5728 \u6b64 \u73af\u5883 \u8fd0\u884c \u73af\u5883\u4e2d\u8fd0\u884c CARLA \u672c \u6559\u7a0b \u5728 Ubuntu 16.04 \u4e2d \u4f7f\u7528 NVIDIA 384.11 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002","title":"\u65e0 \u663e\u793a\u5c4f \u8fd0\u884c CARLA \u5e76 \u9009\u62e9 GPU"},{"location":"carla_headless/#_1","text":"\u60a8 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u9700\u8981 \u5148 \u8fd0\u884c \u4e00\u4e9b \u7a0b\u5e8f \u3002 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u3001 OpenGL \u3001 VirtualGL ( VGL ) \u3001 TurboVNC 2.11 \u3002","title":"\u51c6\u5907 \u5de5\u4f5c"},{"location":"carla_headless/#nvidia","text":"\u4e0b\u8f7d \u5e76 \u5b89\u88c5 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4ee5\u53ca \u5178\u578b \u6559\u7a0b \u3002","title":"NVIDIA \u9a71\u52a8\u7a0b\u5e8f"},{"location":"carla_headless/#opengl","text":"Openg GL \u662f Virtual GL \u6240 \u5fc5\u9700 \u7684 \u3002 \u901a\u5e38 \u53ef\u4ee5 \u901a\u8fc7 apt \u5b89\u88c5 OpenGL \u3002 sudo apt - get install freeglut3 - dev mesa - utils","title":"OpenGL"},{"location":"carla_headless/#vgl","text":"\u6309\u7167 \u672c \u6559\u7a0b \u5b89\u88c5 vgl \uff1a \u5b89\u88c5 VGL","title":"VGL"},{"location":"carla_headless/#turbovnc","text":"\u6309\u7167 \u4ee5\u4e0b \u6559\u7a0b \u5b89\u88c5 TurboVNC 2.11 \uff1a \u5b89\u88c5 TurboVNC \u8b66\u544a \uff1a \u8bf7 \u8c28\u614e \u5b89\u88c5 VNC \uff0c \u56e0\u4e3a \u5b83 \u53ef\u80fd \u4e0e Unreal \u4e0d \u517c\u5bb9 \u3002 \u4e0a\u9762 \u7684 \u90a3\u4e2a \u662f \u552f\u4e00 \u5bf9 \u6211 \u6709\u7528 \u7684 \u3002","title":"TurboVNC"},{"location":"carla_headless/#_2","text":"\u8fd9\u4e9b \u989d\u5916 \u7684 \u5305 \u5bf9\u4e8e \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd0\u884c \u662f \u5fc5\u9700 \u7684 \u3002 ` ` ` shell script sudo apt install x11 - xserver - utils libxrandr - dev ### \u914d\u7f6e \u4f60 \u7684 X \u60a8 \u5fc5\u987b \u751f\u6210 \u4e0e \u60a8 \u7684 nvdia \u517c\u5bb9 \u7684 X \uff0c \u5e76\u4e14 \u517c\u5bb9 \u5728 \u65e0 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u3002 \u4e3a\u6b64 \uff0c \u4ee5\u4e0b \u547d\u4ee4 \u6709\u6548 \uff1a ` ` ` shell script sudo nvidia - xconfig - a -- use - display - device = None -- virtual = 1280x1024","title":"\u989d\u5916 \u7684 \u5305"},{"location":"carla_headless/#_3","text":"\u8fd0\u884c \u4f60 \u81ea\u5df1 \u7684 Xorg \u3002 \u8fd9\u91cc \u6211 \u4f7f\u7528 \u6570\u5b57 7 \uff0c \u4f46 \u5b83 \u53ef\u4ee5 \u6807\u8bb0 \u4e3a \u4efb\u4f55 \u81ea\u7531 \u6570\u5b57 ` ` ` shell script sudo nohup Xorg : 7 & \u8fd0\u884c \u8f85\u52a9 \u8fdc\u7a0b VNC - Xserver \u3002 \u8fd9 \u5c06 \u521b\u5efa \u865a\u62df \u663e\u793a \u663e\u793a\u5668 \u201c 8 \u201d \u3002 ` ` ` shell script / opt / TurboVNC / bin / vncserver : 8 \u5982\u679c \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \uff0c \u4ee5\u4e0b \u547d\u4ee4 \u5e94\u8be5 \u53ef\u4ee5 \u987a\u5229 \u8fd0\u884c \u3002 ` ` ` shell script DISPLAY = : 8 vglrun - d : 7.0 glxinfo \u6ce8\u610f \u3002 \u8fd9 \u5c06 \u5728 Xserver 7 \u3001 \u8bbe\u5907 0 \u4e0a \u8fd0\u884c glxinfo \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u60a8 \u6b63\u5728 \u9009\u62e9 \u673a\u5668 \u4e0a \u7684 GPU 0 \u3002 \u8981 \u5728 \u5176\u4ed6 GPU \uff08 \u4f8b\u5982 GPU 1 \uff09 \u4e0a \u8fd0\u884c \uff0c \u8bf7 \u8fd0\u884c \uff1a ` ` ` shell script DISPLAY = : 8 vglrun - d : 7.1 glxinfo","title":"\u6a21\u62df \u865a\u62df \u663e\u793a"},{"location":"carla_headless/#_4","text":"\u5982\u679c \u60a8 \u5e0c\u671b \u5728 \u521b\u5efa \u201c nohup Xorg \u201d \u65f6 \u7981\u7528 sudo \uff0c \u8bf7 \u8f6c\u5230 \u201c / etc / X11 / Xwrapper . config \u201d \u6587\u4ef6 \u5e76 \u5c06 \u201c allowed _ users = console \u201d \u66f4 \u6539\u4e3a \u201c allowed _ users = anybody \u201d \u5728 \u8fd0\u884c nohup Xorg \u4e4b\u524d \u53ef\u80fd \u9700\u8981 \u505c\u6b62 \u6240\u6709 Xorg \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8be5 \u547d\u4ee4 \u53ef\u80fd \u56e0 \u60a8 \u7684 \u7cfb\u7edf \u800c\u5f02 \u3002 \u901a\u5e38 \u5bf9\u4e8e Ubuntu 16.04 \uff0c \u60a8 \u5e94\u8be5 \u4f7f\u7528 \uff1a ` ` ` shell script sudo service lightdm stop ## \u8fd0\u884c CARLA \u73b0\u5728 \uff0c \u6700\u540e \uff0c \u8981 \u5728 \u67d0\u4e2a $ CARLA _ PATH \u4e2d \u7684 \u67d0\u4e2a gpu _ number \u4e0a \u8fd0\u884c CARLA \uff0c \u8bf7 \u8fd0\u884c \u3002 ` ` ` shell script DISPLAY = : 8 vglrun - d : 7 . < gpu _ number > $ CARLA _ PATH / CarlaUE4 / Binaries / Linux / CarlaUE4","title":"\u989d\u5916 \u7684"},{"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 : \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d\u79f0 gnss \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d lane _ invasion \u7684 \u538b\u7ebf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 : \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d\u79f0 gnss \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d lane _ invasion \u7684 \u538b\u7ebf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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_server/","text":"CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7f16\u8bd1 \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u7528\u4e8e \u5728 Linux \u4e0a \u6784\u5efa \u548c \u6d4b\u8bd5 CarlaServer \u7684 \u811a\u672c ` ` ` shell script . / Setup . sh make make check \u5b89\u88c5 \u811a\u672c \u4f1a \u4e0b\u8f7d \u5e76 \u7f16\u8bd1 \u6240\u6709 \u5fc5\u9700 \u7684 \u4f9d\u8d56 \u9879 \u3002 Makefile \u8c03\u7528 CMake \u6765 \u6784\u5efa CarlaServer \u5e76 \u5c06 \u5176 \u5b89\u88c5 \u5728 \u201c Util / Install \u201d \u4e0b \u3002 ## \u534f\u8bae \u6240\u6709 \u6d88\u606f \u524d \u90fd \u9644\u52a0 \u4e00\u4e2a 32 \u4f4d \u65e0 \u7b26\u53f7 \u6574\u6570 \uff08 \u5c0f\u7aef \u5b57\u8282 \u5e8f \uff09 \uff0c \u6307\u793a \u5373\u5c06 \u5230\u6765 \u7684 \u6d88\u606f \u7684 \u5927\u5c0f \u3002 \u4f7f\u7528 \u4e09\u4e2a \u8fde\u7eed \u7684 \u7aef\u53e3 \uff0c - world - port ( \u9ed8\u8ba4 2000 ) - measurements - port = world - port + 1 - control - port = world - port + 2 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u7ebf\u7a0b \uff0c \u53ef\u4ee5 \u5f02\u6b65 \u53d1\u9001 / \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u3002 ### \u4e16\u754c \u7ebf\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bfb\u53d6 \u4e00\u4e2a \uff0c \u5199\u5165 \u4e00\u4e2a \u3002 \u59cb\u7ec8 \u662f protobuf \u6d88\u606f \u3002 [ client ] RequestNewEpisode [ server ] SceneDescription [ client ] EpisodeStart [ server ] EpisodeReady ... repeat ... ### \u6d4b\u91cf \u7ebf\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5 \u5199\u5165 \u7b2c\u4e00 \u4e00\u6761 \u7b2c\u4e00\u6761 \u6d4b\u91cf \u6d88\u606f \uff0c \u7136\u540e \u5199\u5165 \u5927\u91cf \u539f\u59cb \u56fe\u50cf \u3002 [ server ] Measurements [ server ] raw images ... repeat ... \u6bcf\u4e2a \u56fe\u50cf \u90fd \u662f \u4e00\u4e2a uint32 \u6570\u7ec4 [ width , height , type , FOV , color [ 0 ] , color [ 1 ] , ... ] \u5176\u4e2d FOV \u662f \u76f8\u673a \u6c34\u5e73 \u89c6\u91ce \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u6bcf\u79cd \u989c\u8272 \u90fd \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u5b58\u50a8 \u7684 FColor ( BGRA ) \uff0c \u53ef\u80fd \u7684 \u56fe\u50cf \u7c7b\u578b \u5305\u62ec type = 0 None ( RGB without any post - processing ) type = 1 SceneFinal ( RGB with post - processing present at the scene ) type = 2 Depth ( Depth Map ) type = 3 SemanticSegmentation ( Semantic Segmentation ) [ \u6b64\u5904 ] \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6d4b\u91cf \u4fe1\u606f \u3002 ### \u63a7\u5236 \u63a7\u5236\u7ebf \u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5 \u8bfb\u53d6 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u6bcf\u5e27 \u53d1\u9001 \u63a7\u5236 \u6d88\u606f \u3002 [ client ] Control ... repeat ... ` ` ` \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6bcf\u5e27 \u90fd \u4f1a \u6682\u505c \u6267\u884c \uff0c \u76f4\u5230 \u6536\u5230 \u63a7\u5236 \u6d88\u606f \u3002 \u63a5\u53e3 \u8be5\u5e93 \u5c01\u88c5 \u5728 C \u8bed\u8a00 \u4e2d \u7684 \u5355\u4e2a \u5305\u542b \u6587\u4ef6 \u201c carla / carla _ server . h \u201d \u4e2d \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u7528\u4e8e \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bfb\u53d6 \u548c \u5199\u5165 \u6d88\u606f \u7684 \u57fa\u672c \u63a5\u53e3 \uff0c \u9690\u85cf \u4e86 \u7f51\u7edc \u548c \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u90e8\u5206 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u51fd\u6570 \u90fd \u6709 \u4e00\u4e2a \u8d85\u65f6 \u53c2\u6570 \uff0c \u5e76\u4f1a \u963b\u585e \uff0c \u76f4\u5230 \u76f8\u5e94 \u7684 \u5f02\u6b65 \u64cd\u4f5c \u5b8c\u6210 \u6216 \u8fbe\u5230 \u8d85\u65f6 \u8981\u6c42 \u3002 \u5c06 \u8d85\u65f6 \u8bbe\u7f6e \u4e3a 0 \u53ef \u83b7\u5f97 \u975e \u963b\u585e \u8c03\u7528 \u3002 CarlaServer \u5b9e\u4f8b \u662f \u7528 carla _ make _ server ( ) \u521b\u5efa \u7684 \uff0c \u4f7f\u7528 \u540e\u5e94 \u88ab carla _ server _ free ( ptr ) \u9500\u6bc1 \u3002 \u8bbe\u8ba1 C API \u8d1f\u8d23 \u5c06 \u8bf7\u6c42 \u5206\u53d1 \u5230 \u76f8\u5e94 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6709 \u4e09\u4e2a \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6bcf\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5728 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4ece \u6982\u5ff5 \u4e0a \u8bb2 \uff0c \u6709 \u4e24\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5373 World Server \u548c Agent Server \u3002 World Server \u63a7\u5236 \u60c5\u8282 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u6bcf\u6b21 \u901a\u8fc7 RequestNewEpisode \u6d88\u606f \u5411 World Server \u8bf7\u6c42 \u65b0 \u60c5\u8282 \u65f6 \uff0c \u90fd \u4f1a \u542f\u52a8 \u65b0 \u60c5\u8282 \u3002 \u60c5\u8282 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c World Server \u5c06 \u542f\u52a8 Agent Server \u3002 Agent Server \u6709 \u4e24\u4e2a \u7ebf\u7a0b \uff0c \u4e00\u4e2a \u7528\u4e8e \u53d1\u9001 \u6d4b\u91cf \u6d41 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u63a5\u6536 \u63a7\u5236 \u3002 \u4e24\u4e2a \u4ee3\u7406 \u7ebf\u7a0b \u90fd \u901a\u8fc7 \u65e0\u9501 \u53cc \u7f13\u51b2 \u7f13\u51b2\u533a \u4e0e \u4e3b\u7ebf \u7a0b \u901a\u4fe1 \uff0c \u4ee5 \u52a0\u5feb \u6d88\u606f \u548c \u56fe\u50cf \u7684 \u6d41\u5f0f \u4f20\u8f93 \u3002 \u6d88\u606f \uff08 protobuf \uff09 \u7684 \u7f16\u7801 \u548c \u7f51\u7edc \u64cd\u4f5c \u662f \u5f02\u6b65 \u6267\u884c \u7684 \u3002","title":"CARLA \u670d\u52a1\u5668"},{"location":"carla_server/#carla","text":"","title":"CARLA \u670d\u52a1\u5668"},{"location":"carla_server/#_1","text":"\u63d0\u4f9b \u4e86 \u4e00\u4e9b \u7528\u4e8e \u5728 Linux \u4e0a \u6784\u5efa \u548c \u6d4b\u8bd5 CarlaServer \u7684 \u811a\u672c ` ` ` shell script . / Setup . sh make make check \u5b89\u88c5 \u811a\u672c \u4f1a \u4e0b\u8f7d \u5e76 \u7f16\u8bd1 \u6240\u6709 \u5fc5\u9700 \u7684 \u4f9d\u8d56 \u9879 \u3002 Makefile \u8c03\u7528 CMake \u6765 \u6784\u5efa CarlaServer \u5e76 \u5c06 \u5176 \u5b89\u88c5 \u5728 \u201c Util / Install \u201d \u4e0b \u3002 ## \u534f\u8bae \u6240\u6709 \u6d88\u606f \u524d \u90fd \u9644\u52a0 \u4e00\u4e2a 32 \u4f4d \u65e0 \u7b26\u53f7 \u6574\u6570 \uff08 \u5c0f\u7aef \u5b57\u8282 \u5e8f \uff09 \uff0c \u6307\u793a \u5373\u5c06 \u5230\u6765 \u7684 \u6d88\u606f \u7684 \u5927\u5c0f \u3002 \u4f7f\u7528 \u4e09\u4e2a \u8fde\u7eed \u7684 \u7aef\u53e3 \uff0c - world - port ( \u9ed8\u8ba4 2000 ) - measurements - port = world - port + 1 - control - port = world - port + 2 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u7ebf\u7a0b \uff0c \u53ef\u4ee5 \u5f02\u6b65 \u53d1\u9001 / \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u3002 ### \u4e16\u754c \u7ebf\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bfb\u53d6 \u4e00\u4e2a \uff0c \u5199\u5165 \u4e00\u4e2a \u3002 \u59cb\u7ec8 \u662f protobuf \u6d88\u606f \u3002 [ client ] RequestNewEpisode [ server ] SceneDescription [ client ] EpisodeStart [ server ] EpisodeReady ... repeat ... ### \u6d4b\u91cf \u7ebf\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5 \u5199\u5165 \u7b2c\u4e00 \u4e00\u6761 \u7b2c\u4e00\u6761 \u6d4b\u91cf \u6d88\u606f \uff0c \u7136\u540e \u5199\u5165 \u5927\u91cf \u539f\u59cb \u56fe\u50cf \u3002 [ server ] Measurements [ server ] raw images ... repeat ... \u6bcf\u4e2a \u56fe\u50cf \u90fd \u662f \u4e00\u4e2a uint32 \u6570\u7ec4 [ width , height , type , FOV , color [ 0 ] , color [ 1 ] , ... ] \u5176\u4e2d FOV \u662f \u76f8\u673a \u6c34\u5e73 \u89c6\u91ce \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u6bcf\u79cd \u989c\u8272 \u90fd \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u5b58\u50a8 \u7684 FColor ( BGRA ) \uff0c \u53ef\u80fd \u7684 \u56fe\u50cf \u7c7b\u578b \u5305\u62ec type = 0 None ( RGB without any post - processing ) type = 1 SceneFinal ( RGB with post - processing present at the scene ) type = 2 Depth ( Depth Map ) type = 3 SemanticSegmentation ( Semantic Segmentation ) [ \u6b64\u5904 ] \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6d4b\u91cf \u4fe1\u606f \u3002 ### \u63a7\u5236 \u63a7\u5236\u7ebf \u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5 \u8bfb\u53d6 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u6bcf\u5e27 \u53d1\u9001 \u63a7\u5236 \u6d88\u606f \u3002 [ client ] Control ... repeat ... ` ` ` \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6bcf\u5e27 \u90fd \u4f1a \u6682\u505c \u6267\u884c \uff0c \u76f4\u5230 \u6536\u5230 \u63a7\u5236 \u6d88\u606f \u3002","title":"\u7f16\u8bd1"},{"location":"carla_server/#_2","text":"\u8be5\u5e93 \u5c01\u88c5 \u5728 C \u8bed\u8a00 \u4e2d \u7684 \u5355\u4e2a \u5305\u542b \u6587\u4ef6 \u201c carla / carla _ server . h \u201d \u4e2d \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u7528\u4e8e \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bfb\u53d6 \u548c \u5199\u5165 \u6d88\u606f \u7684 \u57fa\u672c \u63a5\u53e3 \uff0c \u9690\u85cf \u4e86 \u7f51\u7edc \u548c \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u90e8\u5206 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u51fd\u6570 \u90fd \u6709 \u4e00\u4e2a \u8d85\u65f6 \u53c2\u6570 \uff0c \u5e76\u4f1a \u963b\u585e \uff0c \u76f4\u5230 \u76f8\u5e94 \u7684 \u5f02\u6b65 \u64cd\u4f5c \u5b8c\u6210 \u6216 \u8fbe\u5230 \u8d85\u65f6 \u8981\u6c42 \u3002 \u5c06 \u8d85\u65f6 \u8bbe\u7f6e \u4e3a 0 \u53ef \u83b7\u5f97 \u975e \u963b\u585e \u8c03\u7528 \u3002 CarlaServer \u5b9e\u4f8b \u662f \u7528 carla _ make _ server ( ) \u521b\u5efa \u7684 \uff0c \u4f7f\u7528 \u540e\u5e94 \u88ab carla _ server _ free ( ptr ) \u9500\u6bc1 \u3002","title":"\u63a5\u53e3"},{"location":"carla_server/#_3","text":"C API \u8d1f\u8d23 \u5c06 \u8bf7\u6c42 \u5206\u53d1 \u5230 \u76f8\u5e94 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6709 \u4e09\u4e2a \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6bcf\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5728 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4ece \u6982\u5ff5 \u4e0a \u8bb2 \uff0c \u6709 \u4e24\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5373 World Server \u548c Agent Server \u3002 World Server \u63a7\u5236 \u60c5\u8282 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u6bcf\u6b21 \u901a\u8fc7 RequestNewEpisode \u6d88\u606f \u5411 World Server \u8bf7\u6c42 \u65b0 \u60c5\u8282 \u65f6 \uff0c \u90fd \u4f1a \u542f\u52a8 \u65b0 \u60c5\u8282 \u3002 \u60c5\u8282 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c World Server \u5c06 \u542f\u52a8 Agent Server \u3002 Agent Server \u6709 \u4e24\u4e2a \u7ebf\u7a0b \uff0c \u4e00\u4e2a \u7528\u4e8e \u53d1\u9001 \u6d4b\u91cf \u6d41 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u63a5\u6536 \u63a7\u5236 \u3002 \u4e24\u4e2a \u4ee3\u7406 \u7ebf\u7a0b \u90fd \u901a\u8fc7 \u65e0\u9501 \u53cc \u7f13\u51b2 \u7f13\u51b2\u533a \u4e0e \u4e3b\u7ebf \u7a0b \u901a\u4fe1 \uff0c \u4ee5 \u52a0\u5feb \u6d88\u606f \u548c \u56fe\u50cf \u7684 \u6d41\u5f0f \u4f20\u8f93 \u3002 \u6d88\u606f \uff08 protobuf \uff09 \u7684 \u7f16\u7801 \u548c \u7f51\u7edc \u64cd\u4f5c \u662f \u5f02\u6b65 \u6267\u884c \u7684 \u3002","title":"\u8bbe\u8ba1"},{"location":"carla_settings/","text":"CARLA \u8bbe\u7f6e \u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 Carla \u8bbe\u7f6e CARLA \u4ece CarlaSettings . ini \u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u8bbe\u7f6e \u3002 \u6b64 \u6587\u4ef6 \u63a7\u5236 \u6a21\u62df \u7684 \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 \u65b9\u9762 \uff0c \u6bcf\u6b21 \u5f00\u59cb \u65b0 \u60c5\u8282 \u65f6 \uff08 \u6bcf\u6b21 \u52a0\u8f7d \u5173\u5361 \u65f6 \uff09 \u90fd \u4f1a \u52a0\u8f7d \u6b64 \u6587\u4ef6 \u3002 \u8bbe\u7f6e \u5c06 \u6309\u7167 \u4e0b \u4e00\u4e2a \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u52a0\u8f7d \uff0c \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u540e\u9762 \u7684 \u503c \u5c06 \u8986\u76d6 \u524d\u9762 \u7684 \u503c \u3002 { CarlaFolder } / Unreal / CarlaUE4 / Config / CarlaSettings . ini \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u63d0\u4f9b \u7684 \u6587\u4ef6 - carla - settings = \" Path / To / CarlaSettings . ini \" \u3002 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5982 - carla - server \u6216 - world - port \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e00\u96c6 \u6bcf\u4e00\u96c6 \u65b0 \u60c5\u8282 \u65f6 \u53d1\u9001 \u7684 \u8bbe\u7f6e \u6587\u4ef6 \u3002 \u770b \u4e00\u4e0b CARLA \u8bbe\u7f6e \u793a\u4f8b \u3002 \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u4ece \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u8bbe\u7f6e \u4e2d \u9009\u62e9 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u8981 \u9009\u62e9 \u4e00\u4e2a \uff0c \u8bf7 \u5728 CarlaSettings . ini \u4e2d \u8bbe\u7f6e \u952e WeatherId \u3002 \u4ee5\u4e0b \u9884\u8bbe \u53ef\u7528 0 - Default 1 - ClearNoon 2 - CloudyNoon 3 - WetNoon 4 - WetCloudyNoon 5 - MidRainyNoon 6 - HardRainNoon 7 - SoftRainNoon 8 - ClearSunset 9 - CloudySunset 10 - WetSunset 11 - WetCloudySunset 12 - MidRainSunset 13 - HardRainSunset 14 - SoftRainSunset \u4f8b\u5982 \uff0c \u8981 \u9009\u62e9 \u4e2d\u5348 \u6709 \u5927\u96e8 \u7684 \u5929\u6c14 \uff0c \u8bf7 \u6dfb\u52a0 \u5230 CarlaSettings . ini [ CARLA / LevelSettings ] WeatherId = 6 \u6a21\u62df \u6a21\u62df\u5668 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 - carla - server \u542f\u52a8 CARLA \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6267\u884c \u6682\u505c \uff0c \u76f4\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 - carla - settings = \" Path / To / CarlaSettings . ini \" \u4ece \u7ed9\u5b9a \u7684 INI \u6587\u4ef6 \u52a0\u8f7d \u8bbe\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 Example . CarlaSettings . ini \u3002 - carla - world - port = N \u5728 \u7aef\u53e3 N \u4e0a \u76d1\u542c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \uff0c \u4ee3\u7406 \u7aef\u53e3 \u5206\u522b \u8bbe\u7f6e \u4e3a N + 1 \u548c N + 2 \u3002 \u6fc0\u6d3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 - carla - no - hud \u9ed8\u8ba4 \u4e0d \u663e\u793a HUD \u3002 - carla - no - networking \u7981\u7528 \u7f51\u7edc \u3002 \u5982\u679c \u5b58\u5728 \u5219 \u8986\u76d6 - carla - server \u3002","title":"CARLA \u8bbe\u7f6e"},{"location":"carla_settings/#carla","text":"\u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002","title":"CARLA \u8bbe\u7f6e"},{"location":"carla_settings/#carla_1","text":"CARLA \u4ece CarlaSettings . ini \u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u8bbe\u7f6e \u3002 \u6b64 \u6587\u4ef6 \u63a7\u5236 \u6a21\u62df \u7684 \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 \u65b9\u9762 \uff0c \u6bcf\u6b21 \u5f00\u59cb \u65b0 \u60c5\u8282 \u65f6 \uff08 \u6bcf\u6b21 \u52a0\u8f7d \u5173\u5361 \u65f6 \uff09 \u90fd \u4f1a \u52a0\u8f7d \u6b64 \u6587\u4ef6 \u3002 \u8bbe\u7f6e \u5c06 \u6309\u7167 \u4e0b \u4e00\u4e2a \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u52a0\u8f7d \uff0c \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u540e\u9762 \u7684 \u503c \u5c06 \u8986\u76d6 \u524d\u9762 \u7684 \u503c \u3002 { CarlaFolder } / Unreal / CarlaUE4 / Config / CarlaSettings . ini \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u63d0\u4f9b \u7684 \u6587\u4ef6 - carla - settings = \" Path / To / CarlaSettings . ini \" \u3002 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5982 - carla - server \u6216 - world - port \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e00\u96c6 \u6bcf\u4e00\u96c6 \u65b0 \u60c5\u8282 \u65f6 \u53d1\u9001 \u7684 \u8bbe\u7f6e \u6587\u4ef6 \u3002 \u770b \u4e00\u4e0b CARLA \u8bbe\u7f6e \u793a\u4f8b \u3002","title":"Carla \u8bbe\u7f6e"},{"location":"carla_settings/#_1","text":"\u53ef\u4ee5 \u4ece \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u8bbe\u7f6e \u4e2d \u9009\u62e9 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u8981 \u9009\u62e9 \u4e00\u4e2a \uff0c \u8bf7 \u5728 CarlaSettings . ini \u4e2d \u8bbe\u7f6e \u952e WeatherId \u3002 \u4ee5\u4e0b \u9884\u8bbe \u53ef\u7528 0 - Default 1 - ClearNoon 2 - CloudyNoon 3 - WetNoon 4 - WetCloudyNoon 5 - MidRainyNoon 6 - HardRainNoon 7 - SoftRainNoon 8 - ClearSunset 9 - CloudySunset 10 - WetSunset 11 - WetCloudySunset 12 - MidRainSunset 13 - HardRainSunset 14 - SoftRainSunset \u4f8b\u5982 \uff0c \u8981 \u9009\u62e9 \u4e2d\u5348 \u6709 \u5927\u96e8 \u7684 \u5929\u6c14 \uff0c \u8bf7 \u6dfb\u52a0 \u5230 CarlaSettings . ini [ CARLA / LevelSettings ] WeatherId = 6","title":"\u5929\u6c14 \u9884\u8bbe"},{"location":"carla_settings/#_2","text":"- carla - server \u542f\u52a8 CARLA \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6267\u884c \u6682\u505c \uff0c \u76f4\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 - carla - settings = \" Path / To / CarlaSettings . ini \" \u4ece \u7ed9\u5b9a \u7684 INI \u6587\u4ef6 \u52a0\u8f7d \u8bbe\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 Example . CarlaSettings . ini \u3002 - carla - world - port = N \u5728 \u7aef\u53e3 N \u4e0a \u76d1\u542c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \uff0c \u4ee3\u7406 \u7aef\u53e3 \u5206\u522b \u8bbe\u7f6e \u4e3a N + 1 \u548c N + 2 \u3002 \u6fc0\u6d3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 - carla - no - hud \u9ed8\u8ba4 \u4e0d \u663e\u793a HUD \u3002 - carla - no - networking \u7981\u7528 \u7f51\u7edc \u3002 \u5982\u679c \u5b58\u5728 \u5219 \u8986\u76d6 - carla - server \u3002","title":"\u6a21\u62df\u5668 \u547d\u4ee4\u884c \u9009\u9879"},{"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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u540c id \u548c type \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u540c id \u548c type \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 \u4f7f \u8def\u5f84 \u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u8def\u5f84 \u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u8def\u5f84 \u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1 \u8fd0\u884c \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u8def\u5f84 \u70b9","title":"Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#carla","text":"Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 \u4f7f \u8def\u5f84 \u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u8def\u5f84 \u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u8def\u5f84 \u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1","title":"Carla \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u8def\u5f84 \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 \u4ee3\u7406 \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 \u5730\u56fe \u8f66\u8f86 \u884c\u4eba \u9053\u5177 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u5730\u56fe \u8f66\u8f86 \u884c\u4eba \u9053\u5177","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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u5c0f\u5b69 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/#_6","text":"","title":"\u5c0f\u5b69"},{"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/#_7","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 \u5783\u573e \u5783\u573e\u6876 \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 \u7269\u54c1 \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 \u5c0f \u7269\u54c1 \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 \u5546\u4e1a \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 \u6876 \u84dd\u56fe ID : static . prop . barrel \u7bb1\u5b50 \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 \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 \u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u84dd\u56fe ID : static . prop . trashbag \u5783\u573e \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 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u84dd\u56fe ID : static . prop . platformgarbage01 \u5783\u573e \u5783\u573e\u6876 \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 \u5bb6\u5177 \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 \u6742\u9879 \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 \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 \u7269\u54c1 \u888b \u5851\u6599 \u5851\u6599\u888b \u84dd\u56fe ID : static . prop . plasticbag \u8d2d\u7269 \u8d2d\u7269\u888b \u84dd\u56fe ID : static . prop . shoppingbag \u63a8\u8f66 \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 \u7bb1 \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 \u8863\u670d \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 \u4e2a\u4eba \u5c0f \u7269\u54c1 \u624b\u673a \u84dd\u56fe ID : static . prop . mobile \u94b1\u5305 \u84dd\u56fe ID : static . prop . purse \u8def \u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u84dd\u56fe ID : static . prop . streetbarrier \u9525\u4f53 \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 \u65bd\u5de5 \u94c1\u677f \u84dd\u56fe ID : static . prop . ironplank \u65bd\u5de5 \u8b66\u793a \u84dd\u56fe ID : static . prop . warningconstruction \u788e\u7247 \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 \u6807\u5fd7 \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 \u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u84dd\u56fe ID : static . prop . chainbarrier \u94fe \u6805\u680f \u672b\u7aef \u84dd\u56fe ID : static . prop . chainbarrierend \u957f\u51f3 \u957f\u51f3 01 \u84dd\u56fe ID : static . prop . bench01 \u957f\u51f3 02 \u84dd\u56fe ID : static . prop . bench02 \u5546\u4e1a \u9910\u8f66 \u84dd\u56fe ID : static . prop . foodcart \u4fe1\u606f \u4ead 01 \u84dd\u56fe ID : static . prop . kiosk _ 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . fountain \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \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 \u5783\u573e \u5783\u573e\u6876 \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 \u5c0f \u7269\u54c1 \u624b\u673a \u94b1\u5305","title":"\u4e2a\u4eba \u7684 \u7269\u54c1"},{"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 \u5546\u4e1a \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":"","title":"\u6876"},{"location":"catalogue_props/#_11","text":"\u84dd\u56fe ID : static . prop . barrel","title":"\u6876"},{"location":"catalogue_props/#_12","text":"","title":"\u7bb1\u5b50"},{"location":"catalogue_props/#_13","text":"\u84dd\u56fe ID : static . prop . bin","title":"\u5783\u573e\u6876"},{"location":"catalogue_props/#_14","text":"\u84dd\u56fe ID : static . prop . clothcontainer","title":"\u5e03\u5236 \u5bb9\u5668"},{"location":"catalogue_props/#_15","text":"\u84dd\u56fe ID : static . prop . container","title":"\u5783\u573e\u7bb1"},{"location":"catalogue_props/#_16","text":"\u84dd\u56fe ID : static . prop . glasscontainer","title":"\u73bb\u7483 \u5bb9\u5668"},{"location":"catalogue_props/#_17","text":"","title":"\u76d2\u5b50"},{"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/#_18","text":"","title":"\u5783\u573e"},{"location":"catalogue_props/#_19","text":"","title":"\u888b\u5b50"},{"location":"catalogue_props/#_20","text":"\u84dd\u56fe ID : static . prop . trashbag","title":"\u5783\u573e\u888b"},{"location":"catalogue_props/#_21","text":"","title":"\u5783\u573e"},{"location":"catalogue_props/#_22","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/#_23","text":"","title":"\u5e73\u53f0"},{"location":"catalogue_props/#01_3","text":"\u84dd\u56fe ID : static . prop . platformgarbage01","title":"\u5783\u573e \u5e73\u53f0 01"},{"location":"catalogue_props/#_24","text":"","title":"\u5783\u573e\u6876"},{"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/#_25","text":"","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#_26","text":"","title":"\u5bb6\u5177"},{"location":"catalogue_props/#03_4","text":"\u84dd\u56fe ID : static . prop . bench03","title":"\u957f\u51f3 03"},{"location":"catalogue_props/#_27","text":"\u84dd\u56fe ID : static . prop . gardenlamp","title":"\u5ead\u9662\u706f"},{"location":"catalogue_props/#_28","text":"\u84dd\u56fe ID : static . prop . pergola","title":"\u51c9\u68da"},{"location":"catalogue_props/#_29","text":"\u84dd\u56fe ID : static . prop . plasticchair","title":"\u5851\u6599 \u6905"},{"location":"catalogue_props/#_30","text":"\u84dd\u56fe ID : static . prop . plastictable","title":"\u5851\u6599 \u684c"},{"location":"catalogue_props/#_31","text":"\u84dd\u56fe ID : static . prop . slide","title":"\u6ed1\u68af"},{"location":"catalogue_props/#_32","text":"\u84dd\u56fe ID : static . prop . swing","title":"\u79cb\u5343"},{"location":"catalogue_props/#_33","text":"\u84dd\u56fe ID : static . prop . swingcouch","title":"\u79cb\u5343 \u6c99\u53d1"},{"location":"catalogue_props/#_34","text":"\u84dd\u56fe ID : static . prop . table","title":"\u684c\u5b50"},{"location":"catalogue_props/#_35","text":"\u84dd\u56fe ID : static . prop . trampoline","title":"\u8e66\u5e8a"},{"location":"catalogue_props/#_36","text":"","title":"\u6742\u9879"},{"location":"catalogue_props/#_37","text":"\u84dd\u56fe ID : static . prop . barbeque","title":"\u70e7\u70e4 \u67b6"},{"location":"catalogue_props/#_38","text":"\u84dd\u56fe ID : static . prop . clothesline","title":"\u667e\u8863\u7ef3"},{"location":"catalogue_props/#_39","text":"\u84dd\u56fe ID : static . prop . doghouse","title":"\u72d7\u7a9d"},{"location":"catalogue_props/#_40","text":"\u84dd\u56fe ID : static . prop . gnome","title":"\u4f8f\u5112"},{"location":"catalogue_props/#_41","text":"\u84dd\u56fe ID : static . prop . wateringcan","title":"\u55b7\u58f6"},{"location":"catalogue_props/#_42","text":"\u84dd\u56fe ID : static . prop . haybale","title":"\u5e72\u8349 \u6346"},{"location":"catalogue_props/#_43","text":"\u84dd\u56fe ID : static . prop . haybalelb","title":"\u5e72\u8349 \u6346 \u5907\u7528"},{"location":"catalogue_props/#_44","text":"","title":"\u82b1\u76c6"},{"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/#_45","text":"","title":"\u4e2a\u4eba \u7684 \u7269\u54c1"},{"location":"catalogue_props/#_46","text":"","title":"\u888b"},{"location":"catalogue_props/#_47","text":"\u84dd\u56fe ID : static . prop . plasticbag","title":"\u5851\u6599\u888b"},{"location":"catalogue_props/#_48","text":"\u84dd\u56fe ID : static . prop . shoppingbag","title":"\u8d2d\u7269\u888b"},{"location":"catalogue_props/#_49","text":"","title":"\u63a8\u8f66"},{"location":"catalogue_props/#_50","text":"\u84dd\u56fe ID : static . prop . shoppingcart","title":"\u8d2d\u7269\u8f66"},{"location":"catalogue_props/#_51","text":"\u84dd\u56fe ID : static . prop . shoppingtrolley","title":"\u8d2d\u7269 \u624b\u63a8\u8f66"},{"location":"catalogue_props/#_52","text":"","title":"\u7bb1"},{"location":"catalogue_props/#_53","text":"\u84dd\u56fe ID : static . prop . briefcase","title":"\u516c\u6587\u5305"},{"location":"catalogue_props/#_54","text":"\u84dd\u56fe ID : static . prop . guitarcase","title":"\u5409\u4ed6 \u76d2"},{"location":"catalogue_props/#_55","text":"\u84dd\u56fe ID : static . prop . travelcase","title":"\u65c5\u884c\u7bb1"},{"location":"catalogue_props/#_56","text":"","title":"\u8863\u670d"},{"location":"catalogue_props/#_57","text":"\u84dd\u56fe ID : static . prop . bike helmet","title":"\u81ea\u884c\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_58","text":"\u84dd\u56fe ID : static . prop . motorhelmet","title":"\u6469\u6258\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_59","text":"","title":"\u4e2a\u4eba \u5c0f \u7269\u54c1"},{"location":"catalogue_props/#_60","text":"\u84dd\u56fe ID : static . prop . mobile","title":"\u624b\u673a"},{"location":"catalogue_props/#_61","text":"\u84dd\u56fe ID : static . prop . purse","title":"\u94b1\u5305"},{"location":"catalogue_props/#_62","text":"","title":"\u8def"},{"location":"catalogue_props/#_63","text":"","title":"\u969c\u788d\u7269"},{"location":"catalogue_props/#_64","text":"\u84dd\u56fe ID : static . prop . streetbarrier","title":"\u8857\u9053 \u62a4\u680f"},{"location":"catalogue_props/#_65","text":"","title":"\u9525\u4f53"},{"location":"catalogue_props/#_66","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/#_67","text":"","title":"\u65bd\u5de5"},{"location":"catalogue_props/#_68","text":"\u84dd\u56fe ID : static . prop . ironplank","title":"\u94c1\u677f"},{"location":"catalogue_props/#_69","text":"\u84dd\u56fe ID : static . prop . warningconstruction","title":"\u65bd\u5de5 \u8b66\u793a"},{"location":"catalogue_props/#_70","text":"","title":"\u788e\u7247"},{"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/#_71","text":"","title":"\u6807\u5fd7"},{"location":"catalogue_props/#_72","text":"\u84dd\u56fe ID : static . prop . trafficwarning","title":"\u4ea4\u901a \u8b66\u544a"},{"location":"catalogue_props/#_73","text":"\u84dd\u56fe ID : static . prop . warningaccident","title":"\u4e8b\u6545 \u8b66\u544a"},{"location":"catalogue_props/#_74","text":"","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_75","text":"","title":"\u969c\u788d\u7269"},{"location":"catalogue_props/#_76","text":"\u84dd\u56fe ID : static . prop . chainbarrier","title":"\u94fe \u6805\u680f"},{"location":"catalogue_props/#_77","text":"\u84dd\u56fe ID : static . prop . chainbarrierend","title":"\u94fe \u6805\u680f \u672b\u7aef"},{"location":"catalogue_props/#_78","text":"","title":"\u957f\u51f3"},{"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/#_79","text":"","title":"\u5546\u4e1a"},{"location":"catalogue_props/#_80","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/#_81","text":"","title":"\u7eaa\u5ff5\u7891"},{"location":"catalogue_props/#_82","text":"\u84dd\u56fe ID : static . prop . fountain","title":"\u55b7\u6cc9"},{"location":"catalogue_props/#_83","text":"","title":"\u7eaa\u5ff5\u7891"},{"location":"catalogue_props/#_84","text":"\u84dd\u56fe ID : static . prop . maptable","title":"\u5730 \u56fe\u8868"},{"location":"catalogue_props/#_85","text":"\u84dd\u56fe ID : static . prop . advertisement","title":"\u5e7f\u544a"},{"location":"catalogue_props/#_86","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/#_87","text":"\u84dd\u56fe ID : static . prop . busstop","title":"\u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_88","text":"\u84dd\u56fe ID : static . prop . busstoplb","title":"\u5907\u7528 \u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_89","text":"\u84dd\u56fe ID : static . prop . atm","title":"\u81ea\u52a8 \u63d0\u6b3e\u673a"},{"location":"catalogue_props/#_90","text":"\u84dd\u56fe ID : static . prop . mailbox","title":"\u90ae\u7bb1"},{"location":"catalogue_props/#_91","text":"\u84dd\u56fe ID : static . prop . streetfountain","title":"\u8857\u5934 \u55b7\u6cc9"},{"location":"catalogue_props/#_92","text":"\u84dd\u56fe ID : static . prop . vendingmachine","title":"\u552e\u8d27\u673a"},{"location":"catalogue_props/#_93","text":"","title":"\u516c\u7528"},{"location":"catalogue_props/#_94","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 \u9500\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 \u9500\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 \u94fe\u63a5 \u83b7\u53d6 \u3002","title":"\u8d21\u732e\u8005 \u5951\u7ea6 \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 \u94fe\u63a5 \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 \u6784\u5efa Carla \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":"\u4e3a Carla \u505a\u51fa \u8d21\u732e"},{"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 \u6784\u5efa Carla \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 \u884c\u4eba \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 \u9500\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 \u9500\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 \u884c\u4eba \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 \u884c\u4eba \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 \u884c\u4eba \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 \u5bf9\u4e8e \u8f66\u8f86 \u3002 map . get _ spawn _ points ( ) \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 world . get _ random _ location ( ) \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u9500\u6bc1 \u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u4e0d\u56de \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u9500\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u884c\u4eba \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 \u884c\u4eba \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 \u884c\u4eba \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u9500\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 \u9500\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 \u884c\u4eba \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 \u9500\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 \u9500\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 \u884c\u4eba","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 \u884c\u4eba \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 \u884c\u4eba \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 \u5bf9\u4e8e \u8f66\u8f86 \u3002 map . get _ spawn _ points ( ) \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 world . get _ random _ location ( ) \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4e0d\u56de \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u9500\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":"\u9500\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u884c\u4eba \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 \u884c\u4eba \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 \u884c\u4eba \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u9500\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 \u9500\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 \u8def\u5f84 \u70b9 \u8f66\u9053 \u8def\u53e3 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \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 \u8def\u5f84 \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":"Core map"},{"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 \u8def\u5f84 \u70b9 \u8f66\u9053 \u8def\u53e3 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \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 \u8def\u5f84 \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 \u4ee3\u7406 \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\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \uff0c \u7528\u4e8e \u68c0\u67e5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u6709 \u901a\u8fc7 listen \u6ce8\u518c \u7684 \u56de\u8c03 \u3002 stop ( ) \u662f \u4e00\u79cd \u505c\u6b62 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \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 \u6a21\u62df \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 \u538b\u7ebf 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":"Core sensors"},{"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 \u4ee3\u7406 \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\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \uff0c \u7528\u4e8e \u68c0\u67e5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u6709 \u901a\u8fc7 listen \u6ce8\u518c \u7684 \u56de\u8c03 \u3002 stop ( ) \u662f \u4e00\u79cd \u505c\u6b62 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \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 \u6a21\u62df \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 \u538b\u7ebf 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 \u4f7f\u7528 \u547d\u4ee4 \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 \u9500\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 \u9500\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 \u4f7f\u7528 \u547d\u4ee4 \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 \u9500\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 \u9500\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 \u95ee\u9898 VS \u63d0\u793a \u65e0\u6cd5 \u542f\u52a8 \u7a0b\u5e8f \u201c \\ DEBUG \\ ALL - BUILD \u201d , \u7cfb\u7edf \u627e \u4e0d\u5230 \u6307\u5b9a \u7684 \u6587\u4ef6 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u662f \uff1a \u9879\u76ee \u2014 > \u8bbe\u7f6e \u4e3a \u542f\u52a8 \u9879\u76ee \u3002 \u53c2\u8003 CMake \u4e2d\u6587 \u6559\u7a0b vs2019 CMake \u6559\u7a0b \uff0c \u4e0b\u8f7d CMake 3.26 \u7684 \u793a\u4f8b \u4ee3\u7801 \u3002 C++ API \u6587\u6863 C++ \u6559\u7a0b CMake \u94fe\u63a5 \u6743\u9650 \uff0c \u533a\u5206 PRIVATE \u3001 PUBLIC \u4e0e INTERFACE \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/#_2","text":"VS \u63d0\u793a \u65e0\u6cd5 \u542f\u52a8 \u7a0b\u5e8f \u201c \\ DEBUG \\ ALL - BUILD \u201d , \u7cfb\u7edf \u627e \u4e0d\u5230 \u6307\u5b9a \u7684 \u6587\u4ef6 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u662f \uff1a \u9879\u76ee \u2014 > \u8bbe\u7f6e \u4e3a \u542f\u52a8 \u9879\u76ee \u3002","title":"\u95ee\u9898"},{"location":"cpp/#_3","text":"CMake \u4e2d\u6587 \u6559\u7a0b vs2019 CMake \u6559\u7a0b \uff0c \u4e0b\u8f7d CMake 3.26 \u7684 \u793a\u4f8b \u4ee3\u7801 \u3002 C++ API \u6587\u6863 C++ \u6559\u7a0b CMake \u94fe\u63a5 \u6743\u9650 \uff0c \u533a\u5206 PRIVATE \u3001 PUBLIC \u4e0e INTERFACE \u3002","title":"\u53c2\u8003"},{"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 \uff08 Windows \u5ba2\u6237 \u5ba2\u6237\u7aef cmake \u6587\u4ef6 \uff09 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 # ToolChain . cmake \u793a\u4f8b 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 ) \u7f16\u8bd1 LibCarla . client \u65f6 \uff0c \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u4f20\u9012 \u7ed9 CMake 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 \u8fd9 \u5c06 \u5728 \u63d0\u4f9b \u7684 \u5b89\u88c5 \u8def\u5f84 \u4e0a \u751f\u6210 \u4ee5\u4e0b \u7ed3\u6784 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 ... \u6211\u4eec \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u9700\u8981 \u94fe\u63a5 \u5230 libcarla _ client . a \uff0c librpc . a \u3001 libRecast . a \u548c libDetour * . a \u3002 \u5982\u679c \u6211\u4eec \u5229\u7528 IO \u6211\u4eec \u9700\u8981 \u94fe\u63a5 \u7684 \u529f\u80fd \u548c / \u6216 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 boost _ filesystem \u3001 png \u3001 tiff \u548c / \u6216 jpeg \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u63d0\u4f9b \u7684 Makefile \u3002","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 \uff08 Windows \u5ba2\u6237 \u5ba2\u6237\u7aef cmake \u6587\u4ef6 \uff09 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 # ToolChain . cmake \u793a\u4f8b 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 ) \u7f16\u8bd1 LibCarla . client \u65f6 \uff0c \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u4f20\u9012 \u7ed9 CMake 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 \u8fd9 \u5c06 \u5728 \u63d0\u4f9b \u7684 \u5b89\u88c5 \u8def\u5f84 \u4e0a \u751f\u6210 \u4ee5\u4e0b \u7ed3\u6784 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 ... \u6211\u4eec \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u9700\u8981 \u94fe\u63a5 \u5230 libcarla _ client . a \uff0c librpc . a \u3001 libRecast . a \u548c libDetour * . a \u3002 \u5982\u679c \u6211\u4eec \u5229\u7528 IO \u6211\u4eec \u9700\u8981 \u94fe\u63a5 \u7684 \u529f\u80fd \u548c / \u6216 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 boost _ filesystem \u3001 png \u3001 tiff \u548c / \u6216 jpeg \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u63d0\u4f9b \u7684 Makefile \u3002","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 \u4e4b\u524d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u6b65\u9aa4 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 \u4ee3\u7406 \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 \u4e4b\u524d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u6b65\u9aa4 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 \u4ee3\u7406 \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 \u4eff\u771f \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 \u4eff\u771f \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":"Ecosys ansys"},{"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 \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 \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":"Ecosys femfx"},{"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 \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 \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":"Ecosys iss"},{"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 \u4eff\u771f \u800c \u6784\u5efa \u7684 \u4e09\u7ef4 \u5185\u5bb9 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4eff\u771f \u4e09\u7ef4 \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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4eff\u771f \u800c \u6784\u5efa \u7684 \u4e09\u7ef4 \u5185\u5bb9 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4eff\u771f \u4e09\u7ef4 \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 \u4eff\u771f\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":"epic_automotive_materials/","text":"\u5982\u4f55 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u91cd\u8981 \u81ea 0.8 . 0 \u7248\u672c \u8d77 \uff0c CARLA \u9ed8\u8ba4 \u4e0d \u4f7f\u7528 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \uff0c \u4ecd\u7136 \u53ef\u4ee5 \u542f\u7528 \u5b83\u4eec \u3002 Epic Game \u63d0\u4f9b \u4e86 \u4e00\u5957 \u514d\u8d39 \u4f7f\u7528 \u7684 \u903c\u771f \u7684 \u6c7d\u8f66 \u6750\u8d28 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u5c06 \u89e3\u91ca \u5982\u4f55 \u4e0b\u8f7d \u8fd9\u4e9b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u94fe\u63a5 \u5230 \u6211\u4eec \u7684 \u8f66\u8f86 \uff0c \u4ee5 \u83b7\u5f97 \u66f4 \u903c\u771f \u7684 \u8f66\u6f06 \u3002 \u4ece \u5e02\u573a \u4e0b\u8f7d Epic Games \u7684 \u6c7d\u8f66 \u6750\u6599 \u5305 \u53ef\u4ee5 \u4ece \u865a\u5e7b \u5f15\u64ce \u5e02\u573a \u514d\u8d39 \u4e0b\u8f7d \u3002 \u7b14\u8bb0 \u4e0d\u5e78 \u7684 \u662f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u5e02\u573a \u4ec5 \u5728 Windows \u4e0a \u53ef\u7528 \uff0c \u56e0\u6b64 \u60a8 \u9700\u8981 \u4e00\u53f0 Windows \u673a\u5668 \u6765 \u4e0b\u8f7d \u6b64 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f51\u7ad9 \u5b89\u88c5 Epic Games Launcher \u3002 \u4ee5 0 \u7f8e\u5143 \u7684 \u4ef7\u683c \u8d2d\u4e70 \u6c7d\u8f66 \u6750\u6599 \u5305 \u3002 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u865a\u62df \u9879\u76ee \u5e76 \u5411 \u5176\u4e2d \u6dfb\u52a0 \u6c7d\u8f66 \u6750\u6599 \u5305 \u3002 \u5728 \u65b0\u5efa \u9879\u76ee \u7684 \u201c Content \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u627e\u5230 \u201c AutomotiveMaterials \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u590d\u5236 \u590d\u5236\u5230 CARLA \u9879\u76ee { NewProject } / Content / AutomotiveMaterials -- > { CARLA } / Unreal / CarlaUE4 / Content / AutomotiveMaterials \u624b\u52a8 \u94fe\u63a5 \u6750\u6599 \u6253\u5f00 \u9879\u76ee \u540e \uff0c \u60a8 \u5e94\u8be5 \u94fe\u63a5 \u521a\u521a \u4e0b\u8f7d \u7684 \u6c7d\u8f66 \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 Content / Static / Vehicles / GeneralMaterials / MaterialRedirectors \u5e76 \u6253\u5f00 RedirectorInstance \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u7a97\u683c \u4e0b \uff0c \u641c\u7d22 \u201c \u7236 \u201d \u6750\u6599 \uff0c \u5e76\u7528 \u201c M _ Carpaint \u201d \u6750\u6599 \u66ff\u6362 \u201c DummyCar \u201d \u6750\u6599 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u201c RedirectorInstance \u201d \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u4e86 \u3002","title":"\u5982\u4f55 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28"},{"location":"epic_automotive_materials/#epic","text":"\u91cd\u8981 \u81ea 0.8 . 0 \u7248\u672c \u8d77 \uff0c CARLA \u9ed8\u8ba4 \u4e0d \u4f7f\u7528 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \uff0c \u4ecd\u7136 \u53ef\u4ee5 \u542f\u7528 \u5b83\u4eec \u3002 Epic Game \u63d0\u4f9b \u4e86 \u4e00\u5957 \u514d\u8d39 \u4f7f\u7528 \u7684 \u903c\u771f \u7684 \u6c7d\u8f66 \u6750\u8d28 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u5c06 \u89e3\u91ca \u5982\u4f55 \u4e0b\u8f7d \u8fd9\u4e9b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u94fe\u63a5 \u5230 \u6211\u4eec \u7684 \u8f66\u8f86 \uff0c \u4ee5 \u83b7\u5f97 \u66f4 \u903c\u771f \u7684 \u8f66\u6f06 \u3002","title":"\u5982\u4f55 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28"},{"location":"epic_automotive_materials/#_1","text":"Epic Games \u7684 \u6c7d\u8f66 \u6750\u6599 \u5305 \u53ef\u4ee5 \u4ece \u865a\u5e7b \u5f15\u64ce \u5e02\u573a \u514d\u8d39 \u4e0b\u8f7d \u3002 \u7b14\u8bb0 \u4e0d\u5e78 \u7684 \u662f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u5e02\u573a \u4ec5 \u5728 Windows \u4e0a \u53ef\u7528 \uff0c \u56e0\u6b64 \u60a8 \u9700\u8981 \u4e00\u53f0 Windows \u673a\u5668 \u6765 \u4e0b\u8f7d \u6b64 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f51\u7ad9 \u5b89\u88c5 Epic Games Launcher \u3002 \u4ee5 0 \u7f8e\u5143 \u7684 \u4ef7\u683c \u8d2d\u4e70 \u6c7d\u8f66 \u6750\u6599 \u5305 \u3002 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u865a\u62df \u9879\u76ee \u5e76 \u5411 \u5176\u4e2d \u6dfb\u52a0 \u6c7d\u8f66 \u6750\u6599 \u5305 \u3002 \u5728 \u65b0\u5efa \u9879\u76ee \u7684 \u201c Content \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u627e\u5230 \u201c AutomotiveMaterials \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u590d\u5236 \u590d\u5236\u5230 CARLA \u9879\u76ee { NewProject } / Content / AutomotiveMaterials -- > { CARLA } / Unreal / CarlaUE4 / Content / AutomotiveMaterials","title":"\u4ece \u5e02\u573a \u4e0b\u8f7d"},{"location":"epic_automotive_materials/#_2","text":"\u6253\u5f00 \u9879\u76ee \u540e \uff0c \u60a8 \u5e94\u8be5 \u94fe\u63a5 \u521a\u521a \u4e0b\u8f7d \u7684 \u6c7d\u8f66 \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 Content / Static / Vehicles / GeneralMaterials / MaterialRedirectors \u5e76 \u6253\u5f00 RedirectorInstance \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u7a97\u683c \u4e0b \uff0c \u641c\u7d22 \u201c \u7236 \u201d \u6750\u6599 \uff0c \u5e76\u7528 \u201c M _ Carpaint \u201d \u6750\u6599 \u66ff\u6362 \u201c DummyCar \u201d \u6750\u6599 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u201c RedirectorInstance \u201d \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u4e86 \u3002","title":"\u624b\u52a8 \u94fe\u63a5 \u6750\u6599"},{"location":"examples/","text":"\u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u811a\u672c \u751f\u6210 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf python examples / generate _ traffic . py -- host localhost -- port 2000 - n 50 - w 20 -- safe \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 python examples / manual _ control . py -- host localhost -- port 2000 -- rolename hero -- keep _ ego _ vehicle \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \uff1a python examples / manual _ control . py -- filter walker . pedestrian . * \u7ed8\u5236 \u8fb9\u754c \u6846 \u811a\u672c \u5c06 \u6839\u636e \u7528\u6237 \u6307\u5b9a \u7684 \u89c6\u89d2 view \uff08 \u4e0a\u65b9 above \u3001 \u540e\u9762 behind \uff09 \u9644\u52a0 \u4e00\u4e2a RGB \u76f8\u673a \uff0c \u5e76 \u5728 \u8ddd\u79bb distance \u4e4b\u5185 \u7ed8\u5236 \u6240\u6709 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 python examples / sensor _ bounding _ box . py -- host localhost -- port 2000 -- rolename hero -- view above -- distance 100 -- res 800x600 -- fov 90 \u6ce8\u610f \u8fd0\u884c \u4e4b\u524d \uff0c \u9700\u8981 \u5148 \u8fd0\u884c manual _ control . py \u751f\u6210 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5426\u5219 \u8fd0\u52a8 \u62a5\u9519 \uff1a Actor hero not found \u3002 \u5e76\u4e14 \u5c06 \u539f\u59cb \u811a\u672c \u7684 \u73af\u5883 \u8def\u5f84 .. / src \u6539\u4e3a .. \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u516d\u79cd \u76f8\u673a \u8be5 \u811a\u672c \u4e3a \u60a8 \u63d0\u4f9b \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u5404\u79cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 python examples / rgb _ camera _ example . py -- host localhost -- port 2000 -- rolename hero \u8def\u5f84 \u70b9 \u8ddf\u8e2a \u8be5 \u811a\u672c \u5b9e\u73b0 \u4e86 \u4e00\u4e2a \u7b80\u5355 \u7684 \u8def\u5f84 \u70b9 \u8ddf\u8e2a \u65b9\u6cd5 \u3002 \u5b83 \u5c06 \u6cbf\u7740 \u5730\u56fe \u4e0a \u7684 \u8def\u5f84 \u70b9 \u884c\u9a76 \uff0c \u5e76 \u5728 \u5230\u8fbe \u8def\u5f84 \u70b9 \u7ec8\u70b9 \u65f6 \u505c\u6b62 \u3002 python examples / waypoint _ follow . py -- host localhost -- port 2000 -- rolename hero -- map Town01 -- json _ file data / town01 _ waypoints . json -- sync -- fixed _ delta _ seconds = 0.05 -- spawn -- visualize -- camera _ follow \u6ce8\u610f \u8fd0\u884c \u4e4b\u524d \u9700\u8981 \u5148 \u8bd5\u7528 python config . py - m Town01 \u5c06 \u5730\u56fe \u5207\u6362 \u5230 Town01 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6fc0\u5149 \u70b9\u4e91 \u6b64 \u811a\u672c \u63d0\u4f9b \u4e86 \u5982\u4f55 \u4f7f\u7528 Open3D \u53ef\u89c6 \u53ef\u89c6\u5316 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u70b9\u4e91 \u548c \u96f7\u8fbe \u6570\u636e \u7684 \u793a\u4f8b \u3002 python examples / 3d _ lidar . py -- host localhost -- port 2000 -- rolename hero -- keep _ ego _ vehicle","title":"Examples"},{"location":"examples/#_1","text":"","title":"\u4ea4\u4e92\u5f0f \u811a\u672c"},{"location":"examples/#_2","text":"python examples / generate _ traffic . py -- host localhost -- port 2000 - n 50 - w 20 -- safe","title":"\u751f\u6210 \u4ea4\u901a\u6d41\u91cf"},{"location":"examples/#_3","text":"python examples / manual _ control . py -- host localhost -- port 2000 -- rolename hero -- keep _ ego _ vehicle \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \uff1a python examples / manual _ control . py -- filter walker . pedestrian . *","title":"\u624b\u52a8 \u63a7\u5236 \u8f66\u8f86"},{"location":"examples/#_4","text":"\u811a\u672c \u5c06 \u6839\u636e \u7528\u6237 \u6307\u5b9a \u7684 \u89c6\u89d2 view \uff08 \u4e0a\u65b9 above \u3001 \u540e\u9762 behind \uff09 \u9644\u52a0 \u4e00\u4e2a RGB \u76f8\u673a \uff0c \u5e76 \u5728 \u8ddd\u79bb distance \u4e4b\u5185 \u7ed8\u5236 \u6240\u6709 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 python examples / sensor _ bounding _ box . py -- host localhost -- port 2000 -- rolename hero -- view above -- distance 100 -- res 800x600 -- fov 90 \u6ce8\u610f \u8fd0\u884c \u4e4b\u524d \uff0c \u9700\u8981 \u5148 \u8fd0\u884c manual _ control . py \u751f\u6210 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5426\u5219 \u8fd0\u52a8 \u62a5\u9519 \uff1a Actor hero not found \u3002 \u5e76\u4e14 \u5c06 \u539f\u59cb \u811a\u672c \u7684 \u73af\u5883 \u8def\u5f84 .. / src \u6539\u4e3a .. \u3002","title":"\u7ed8\u5236 \u8fb9\u754c \u6846"},{"location":"examples/#_5","text":"\u8be5 \u811a\u672c \u4e3a \u60a8 \u63d0\u4f9b \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u5404\u79cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 python examples / rgb _ camera _ example . py -- host localhost -- port 2000 -- rolename hero","title":"\u53ef\u89c6\u5316 \u516d\u79cd \u76f8\u673a"},{"location":"examples/#_6","text":"\u8be5 \u811a\u672c \u5b9e\u73b0 \u4e86 \u4e00\u4e2a \u7b80\u5355 \u7684 \u8def\u5f84 \u70b9 \u8ddf\u8e2a \u65b9\u6cd5 \u3002 \u5b83 \u5c06 \u6cbf\u7740 \u5730\u56fe \u4e0a \u7684 \u8def\u5f84 \u70b9 \u884c\u9a76 \uff0c \u5e76 \u5728 \u5230\u8fbe \u8def\u5f84 \u70b9 \u7ec8\u70b9 \u65f6 \u505c\u6b62 \u3002 python examples / waypoint _ follow . py -- host localhost -- port 2000 -- rolename hero -- map Town01 -- json _ file data / town01 _ waypoints . json -- sync -- fixed _ delta _ seconds = 0.05 -- spawn -- visualize -- camera _ follow \u6ce8\u610f \u8fd0\u884c \u4e4b\u524d \u9700\u8981 \u5148 \u8bd5\u7528 python config . py - m Town01 \u5c06 \u5730\u56fe \u5207\u6362 \u5230 Town01 \u3002","title":"\u8def\u5f84 \u70b9 \u8ddf\u8e2a"},{"location":"examples/#_7","text":"\u6b64 \u811a\u672c \u63d0\u4f9b \u4e86 \u5982\u4f55 \u4f7f\u7528 Open3D \u53ef\u89c6 \u53ef\u89c6\u5316 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u70b9\u4e91 \u548c \u96f7\u8fbe \u6570\u636e \u7684 \u793a\u4f8b \u3002 python examples / 3d _ lidar . py -- host localhost -- port 2000 -- rolename hero -- keep _ ego _ vehicle","title":"\u53ef\u89c6\u5316 \u6fc0\u5149 \u70b9\u4e91"},{"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 \u5de5\u5177 \u8bad\u7ec3 \u6570\u636e \u751f\u6210 \u2014 \u751f\u6210 \u5404\u79cd \u9a7e\u9a76 \u573a\u666f \u5e76 \u6355\u83b7 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u753b\u7ebf \u2014 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7ed8\u5236 \u4fef\u89c6 \u76f8\u673a \u4e2d \u7684 \u7ebf \uff0c \u5e76 \u4fdd\u5b58 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u573a\u666f \u751f\u6210 \u573a\u666f \u2014 \u4f7f\u7528 \u7279\u5b9a \u9886\u57df \u5efa\u6a21 \u9886\u57df\u5efa\u6a21 \u8bed\u8a00 \u751f\u6210 \u81ea\u52a8 \u9a7e\u9a76 \u573a\u666f \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 \u4ee3\u7406 \u2014 \u4ee3\u7406 \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":"\u8bad\u7ec3 \u6570\u636e \u751f\u6210 \u2014 \u751f\u6210 \u5404\u79cd \u9a7e\u9a76 \u573a\u666f \u5e76 \u6355\u83b7 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u753b\u7ebf \u2014 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7ed8\u5236 \u4fef\u89c6 \u76f8\u673a \u4e2d \u7684 \u7ebf \uff0c \u5e76 \u4fdd\u5b58 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002","title":"\u5de5\u5177"},{"location":"ext_docs/#_3","text":"\u751f\u6210 \u573a\u666f \u2014 \u4f7f\u7528 \u7279\u5b9a \u9886\u57df \u5efa\u6a21 \u9886\u57df\u5efa\u6a21 \u8bed\u8a00 \u751f\u6210 \u81ea\u52a8 \u9a7e\u9a76 \u573a\u666f \u3002","title":"\u573a\u666f"},{"location":"ext_docs/#_4","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 \u4ee3\u7406 \u2014 \u4ee3\u7406 \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/#_5","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/#_6","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/#_7","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/#_8","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":"File specification"},{"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 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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u5730\u56fe \u548c \u5bfc\u822a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \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 \u6e32\u67d3 \u53f2\u8bd7 \u6a21\u5f0f \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u8fdb\u9636 \u6b65\u9aa4 \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 \u9500\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u84dd \u56fe\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 \uff08 RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 \uff09 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \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 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u4ee3\u7406 \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 \u8282\u62cd \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8282\u62cd \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u8282\u62cd \u5e76 \u83b7\u53d6 \u8282\u62cd \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 \u9500\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 \u534f\u540c \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u534f\u540c \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":"Foundations"},{"location":"foundations/#_1","text":"\u672c\u9875 \u4ecb\u7ecd \u4e86 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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u5730\u56fe \u548c \u5bfc\u822a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \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 \u6e32\u67d3 \u53f2\u8bd7 \u6a21\u5f0f \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u8fdb\u9636 \u6b65\u9aa4","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 \u9500\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":"\u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u84dd \u56fe\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 \uff08 RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 \uff09 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \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 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u8d23\u4efb \u654f\u611f \u5b89\u5168","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 \u4ee3\u7406 \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 \u8282\u62cd \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8282\u62cd \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u8282\u62cd \u5e76 \u83b7\u53d6 \u8282\u62cd \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 \u9500\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 \u534f\u540c \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u534f\u540c \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":"game/","text":"\u6e38\u620f \u8861\u91cf \u624b\u63a7 \u6c7d\u8f66 \u7684 \u6027\u80fd \u5206\u6570 \u7ef4\u6301 \u4e0d\u53d8 \u5c31 \u52a0\u5206 \u6263\u5206 \uff1a \u78b0\u649e \u3001 \u538b\u7ebf \uff1b \u5173\u5361 \uff1a \u5929\u6c14 \uff1b \u6548\u679c \u6e38\u620f \u8bf4\u660e \uff1a \u7ffb\u8bd1 \u3001 \u952e\u76d8 \u63a7\u5236 \uff1b \u5168\u5c4f \uff1a \u6309 F11 \u5168\u5c4f \u3001 F11 \u6216 Esc \u9000\u51fa \u5168\u5c4f \u5934\u663e \uff1a \u5206\u6570 \u3001 \u5404\u79cd \u6307\u6807 \uff08 \u53ef\u4ee5 \u9690\u85cf \uff09 \uff1b \u5207\u6362 \u5730\u56fe \u3001 \u8f66\u8f86 \uff1b","title":"\u6e38\u620f"},{"location":"game/#_1","text":"","title":"\u6e38\u620f"},{"location":"game/#_2","text":"\u5206\u6570 \u7ef4\u6301 \u4e0d\u53d8 \u5c31 \u52a0\u5206 \u6263\u5206 \uff1a \u78b0\u649e \u3001 \u538b\u7ebf \uff1b \u5173\u5361 \uff1a \u5929\u6c14 \uff1b","title":"\u8861\u91cf \u624b\u63a7 \u6c7d\u8f66 \u7684 \u6027\u80fd"},{"location":"game/#_3","text":"\u6e38\u620f \u8bf4\u660e \uff1a \u7ffb\u8bd1 \u3001 \u952e\u76d8 \u63a7\u5236 \uff1b \u5168\u5c4f \uff1a \u6309 F11 \u5168\u5c4f \u3001 F11 \u6216 Esc \u9000\u51fa \u5168\u5c4f \u5934\u663e \uff1a \u5206\u6570 \u3001 \u5404\u79cd \u6307\u6807 \uff08 \u53ef\u4ee5 \u9690\u85cf \uff09 \uff1b \u5207\u6362 \u5730\u56fe \u3001 \u8f66\u8f86 \uff1b","title":"\u6548\u679c"},{"location":"how_to_add_assets/","text":"\u5982\u4f55 \u6dfb\u52a0 \u8d44\u4ea7 \u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 \u6dfb\u52a0 \u8f66\u8f86 \u6309\u7167 \u827a\u672f \u6307\u5357 \u521b\u5efa \u9aa8\u67b6 \u7f51\u683c \u4f53 \u548c \u7269\u7406 \u8d44\u4ea7 \u3002 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u53c2\u9605 \u8bf7\u53c2\u9605 \u8f66\u8f86 \u7528\u6237 \u6307\u5357 \u3002 \u5c06 fbx \u4f5c\u4e3a Skelletal Mesh \u5bfc\u5165 \u5bfc\u5165\u5230 \u5176 \u81ea\u5df1 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d Content / Static / Vehicles \u3002 \u7269\u7406 \u8d44\u4ea7 \u548c \u9aa8\u67b6 \u5e94 \u81ea\u52a8 \u521b\u5efa \uff0c \u5e76 \u5c06 \u4e09\u8005 \u94fe\u63a5 \u5728 \u4e00\u8d77 \u3002 \u8c03\u6574 \u7269\u7406 \u8d44\u4ea7 \u3002 \u5220\u9664 \u81ea\u52a8 \u521b\u5efa \u7684 \u8d44\u4ea7 \uff0c \u5e76 \u4e3a \u4e0e Vehicle _ Base \u5f62\u72b6 \u5339\u914d \u7684 \u9aa8\u9abc \u6dfb\u52a0 \u6846 \uff0c \u786e\u4fdd \u542f\u7528 \u4e86 \u751f\u6210 \u649e\u51fb \u4e8b\u4ef6 \u3002 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u6dfb\u52a0 \u4e00\u4e2a \u7403\u4f53 \uff0c \u5e76 \u5c06 \u5176 \u201c \u7269\u7406 \u7c7b\u578b \u201d \u8bbe\u7f6e \u4e3a \u201c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u201d \u3002 \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a \u201c \u52a8\u753b \u84dd\u56fe \u201d \uff0c \u521b\u5efa \u65f6 \u9009\u62e9 \u201c VehicleAnimInstance \u201d \u4f5c\u4e3a \u7236\u7c7b \uff0c \u5e76 \u4ee5\u6b64 \u6c7d\u8f66 \u8f66\u6a21 \u6a21\u578b \u6c7d\u8f66\u6a21\u578b \u7684 \u9aa8\u67b6 \u4f5c\u4e3a \u76ee\u6807 \u9aa8\u67b6 \u3002 \u6dfb\u52a0 \u52a8\u753b \u753b\u56fe \u52a8\u753b\u56fe \uff0c \u5982 \u4e0a\u9762 \u7ed9\u51fa \u7684 \u94fe\u63a5 \u6240\u793a \uff08 \u6216 \u5728 \u5176\u4ed6 \u6c7d\u8f66 \u7684 \u52a8\u753b \u4e2d \u67e5\u627e \uff0c \u5982 Mustang \uff09 \u3002 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Content / Blueprints / Vehicles / < vehicle - model > \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u521b\u5efa \u4e24\u4e2a \u4ece \u201c VehicleWheel \u201d \u7c7b \u6d3e\u751f \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u5b83\u4eec \u547d\u540d \u4e3a < vehicle - model > _ FrontWheel \u548c < vehicle - model > _ RearWheel \u3002 \u5c06 \u5b83\u4eec \u7684 \u201c \u5f62\u72b6 \u534a\u5f84 \u201d \u8bbe\u7f6e \u4e3a \u4e0e \u7f51\u683c \u8f6e \u534a\u5f84 \u5b8c\u5168 \u5339\u914d \uff08 \u6ce8\u610f \uff0c \u662f \u534a\u5f84 \u800c \u4e0d\u662f \u76f4\u5f84 \uff09 \u3002 \u5c06 \u5b83\u4eec \u7684 \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 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a \u84dd\u56fe \u7c7b \uff0c \u4ece\u4e2d \u6d3e \u751f\u51fa \u5e76 BaseVehiclePawn \u8c03\u7528 \u5b83 < vehicle - model > \u3002 \u6253\u5f00 \u5b83 \u8fdb\u884c \u7f16\u8f91 \u5e76 \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 \u7ec4\u4ef6 \u201c VehicleMovement \u201d \uff0c \u5728 \u201c Vehicle Setup \u201d \u4e0b \u5c55\u5f00 \u201c Wheel Setups \u201d \uff0c \u8bbe\u7f6e \u6bcf\u4e2a \u8f66\u8f6e 0 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ FrontWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Front _ Left 1 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ FrontWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Front _ Right 2 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ RearWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Rear _ Left 3 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ RearWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Rear _ Right \u5411 \u5176\u4e2d \u6dfb\u52a0 \u4e00\u4e2a \u540d\u4e3a \u201c Box \u201d \u7684 \u76d2\u5b50 \u7ec4\u4ef6 \uff08 \u53c2\u89c1 Mustang \u84dd\u56fe \uff09 \uff0c \u5e76 \u5c06 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u4ece \u4e0a\u65b9 \u8986\u76d6 \u8f66\u8f86 \u533a\u57df \u3002 \u786e\u4fdd \u8bbe\u7f6e \u4e86 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u9690\u85cf \u5728 \u6e38\u620f \u4e2d \u6a21\u62df \u7269\u7406 \u5df2 \u7981\u7528 \u7981\u7528 \u751f\u6210 \u91cd\u53e0 \u4e8b\u4ef6 \u78b0\u649e \u9884\u8bbe \u8bbe\u7f6e \u4e3a \u201c NoCollision \u201d \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 \u6c7d\u8f66 \u84dd\u56fe \u3002 \u5730\u56fe \u751f\u6210 \u5bf9\u4e8e \u9053\u8def \u751f\u6210 \uff0c \u9884\u8ba1 \u4f1a \u627e\u5230 \u4ee5\u4e0b \u7f51\u683c # Enum Filepath RoadTwoLanes _ LaneLeft at \" Content / Static / Road / St _ Road _ TileRoad _ RoadL . uasset \" RoadTwoLanes _ LaneRight at \" Content / Static / Road / St _ Road _ TileRoad _ RoadR . uasset \" RoadTwoLanes _ SidewalkLeft at \" Content / Static / SideWalk / St _ Road _ TileRoad _ SidewalkL . uasset \" RoadTwoLanes _ SidewalkRight at \" Content / Static / SideWalk / St _ Road _ TileRoad _ SidewalkR . uasset \" RoadTwoLanes _ LaneMarkingSolid at \" Content / Static / RoadLines / St _ Road _ TileRoad _ LaneMarkingSolid . uasset \" RoadTwoLanes _ LaneMarkingBroken at \" Content / Static / RoadLines / St _ Road _ TileRoad _ LaneMarkingBroken . uasset \" Road90DegTurn _ Lane0 at \" Content / Static / Road / St _ Road _ Curve _ Road1 . uasset \" Road90DegTurn _ Lane1 at \" Content / Static / Road / St _ Road _ Curve _ Road2 . uasset \" Road90DegTurn _ Lane2 at \" Content / Static / Road / St _ Road _ Curve _ Road3 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road4 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road5 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road6 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road7 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road8 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road9 . uasset \" Road90DegTurn _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk1 . uasset \" Road90DegTurn _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk2 . uasset \" Road90DegTurn _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk3 . uasset \" Road90DegTurn _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk4 . uasset \" Road90DegTurn _ LaneMarking at \" Content / Static / Road / St _ Road _ Curve _ LaneMarking . uasset \" RoadTIntersection _ Lane0 at \" Content / Static / Road / St _ Road _ TCross _ Road1 . uasset \" RoadTIntersection _ Lane1 at \" Content / Static / Road / St _ Road _ TCross _ Road2 . uasset \" RoadTIntersection _ Lane2 at \" Content / Static / Road / St _ Road _ TCross _ Road3 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road4 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road5 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road6 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road7 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road8 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road9 . uasset \" RoadTIntersection _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk1 . uasset \" RoadTIntersection _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk2 . uasset \" RoadTIntersection _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk3 . uasset \" RoadTIntersection _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk4 . uasset \" RoadTIntersection _ LaneMarking at \" Content / Static / RoadLines / St _ Road _ TCross _ LaneMarking . uasset \" RoadXIntersection _ Lane0 at \" Content / Static / Road / St _ Road _ XCross _ Road1 . uasset \" RoadXIntersection _ Lane1 at \" Content / Static / Road / St _ Road _ XCross _ Road2 . uasset \" RoadXIntersection _ Lane2 at \" Content / Static / Road / St _ Road _ XCross _ Road3 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road4 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road5 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road6 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road7 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road8 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road9 . uasset \" RoadXIntersection _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk1 . uasset \" RoadXIntersection _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk2 . uasset \" RoadXIntersection _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk3 . uasset \" RoadXIntersection _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk4 . uasset \" RoadXIntersection _ LaneMarking at \" Content / Static / RoadLines / St _ Road _ XCross _ LaneMarking . uasset \"","title":"\u5982\u4f55 \u6dfb\u52a0 \u8d44\u4ea7"},{"location":"how_to_add_assets/#_1","text":"\u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002","title":"\u5982\u4f55 \u6dfb\u52a0 \u8d44\u4ea7"},{"location":"how_to_add_assets/#_2","text":"\u6309\u7167 \u827a\u672f \u6307\u5357 \u521b\u5efa \u9aa8\u67b6 \u7f51\u683c \u4f53 \u548c \u7269\u7406 \u8d44\u4ea7 \u3002 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u53c2\u9605 \u8bf7\u53c2\u9605 \u8f66\u8f86 \u7528\u6237 \u6307\u5357 \u3002 \u5c06 fbx \u4f5c\u4e3a Skelletal Mesh \u5bfc\u5165 \u5bfc\u5165\u5230 \u5176 \u81ea\u5df1 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d Content / Static / Vehicles \u3002 \u7269\u7406 \u8d44\u4ea7 \u548c \u9aa8\u67b6 \u5e94 \u81ea\u52a8 \u521b\u5efa \uff0c \u5e76 \u5c06 \u4e09\u8005 \u94fe\u63a5 \u5728 \u4e00\u8d77 \u3002 \u8c03\u6574 \u7269\u7406 \u8d44\u4ea7 \u3002 \u5220\u9664 \u81ea\u52a8 \u521b\u5efa \u7684 \u8d44\u4ea7 \uff0c \u5e76 \u4e3a \u4e0e Vehicle _ Base \u5f62\u72b6 \u5339\u914d \u7684 \u9aa8\u9abc \u6dfb\u52a0 \u6846 \uff0c \u786e\u4fdd \u542f\u7528 \u4e86 \u751f\u6210 \u649e\u51fb \u4e8b\u4ef6 \u3002 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u6dfb\u52a0 \u4e00\u4e2a \u7403\u4f53 \uff0c \u5e76 \u5c06 \u5176 \u201c \u7269\u7406 \u7c7b\u578b \u201d \u8bbe\u7f6e \u4e3a \u201c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u201d \u3002 \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a \u201c \u52a8\u753b \u84dd\u56fe \u201d \uff0c \u521b\u5efa \u65f6 \u9009\u62e9 \u201c VehicleAnimInstance \u201d \u4f5c\u4e3a \u7236\u7c7b \uff0c \u5e76 \u4ee5\u6b64 \u6c7d\u8f66 \u8f66\u6a21 \u6a21\u578b \u6c7d\u8f66\u6a21\u578b \u7684 \u9aa8\u67b6 \u4f5c\u4e3a \u76ee\u6807 \u9aa8\u67b6 \u3002 \u6dfb\u52a0 \u52a8\u753b \u753b\u56fe \u52a8\u753b\u56fe \uff0c \u5982 \u4e0a\u9762 \u7ed9\u51fa \u7684 \u94fe\u63a5 \u6240\u793a \uff08 \u6216 \u5728 \u5176\u4ed6 \u6c7d\u8f66 \u7684 \u52a8\u753b \u4e2d \u67e5\u627e \uff0c \u5982 Mustang \uff09 \u3002 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Content / Blueprints / Vehicles / < vehicle - model > \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u521b\u5efa \u4e24\u4e2a \u4ece \u201c VehicleWheel \u201d \u7c7b \u6d3e\u751f \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u5b83\u4eec \u547d\u540d \u4e3a < vehicle - model > _ FrontWheel \u548c < vehicle - model > _ RearWheel \u3002 \u5c06 \u5b83\u4eec \u7684 \u201c \u5f62\u72b6 \u534a\u5f84 \u201d \u8bbe\u7f6e \u4e3a \u4e0e \u7f51\u683c \u8f6e \u534a\u5f84 \u5b8c\u5168 \u5339\u914d \uff08 \u6ce8\u610f \uff0c \u662f \u534a\u5f84 \u800c \u4e0d\u662f \u76f4\u5f84 \uff09 \u3002 \u5c06 \u5b83\u4eec \u7684 \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 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a \u84dd\u56fe \u7c7b \uff0c \u4ece\u4e2d \u6d3e \u751f\u51fa \u5e76 BaseVehiclePawn \u8c03\u7528 \u5b83 < vehicle - model > \u3002 \u6253\u5f00 \u5b83 \u8fdb\u884c \u7f16\u8f91 \u5e76 \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 \u7ec4\u4ef6 \u201c VehicleMovement \u201d \uff0c \u5728 \u201c Vehicle Setup \u201d \u4e0b \u5c55\u5f00 \u201c Wheel Setups \u201d \uff0c \u8bbe\u7f6e \u6bcf\u4e2a \u8f66\u8f6e 0 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ FrontWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Front _ Left 1 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ FrontWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Front _ Right 2 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ RearWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Rear _ Left 3 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ RearWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Rear _ Right \u5411 \u5176\u4e2d \u6dfb\u52a0 \u4e00\u4e2a \u540d\u4e3a \u201c Box \u201d \u7684 \u76d2\u5b50 \u7ec4\u4ef6 \uff08 \u53c2\u89c1 Mustang \u84dd\u56fe \uff09 \uff0c \u5e76 \u5c06 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u4ece \u4e0a\u65b9 \u8986\u76d6 \u8f66\u8f86 \u533a\u57df \u3002 \u786e\u4fdd \u8bbe\u7f6e \u4e86 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u9690\u85cf \u5728 \u6e38\u620f \u4e2d \u6a21\u62df \u7269\u7406 \u5df2 \u7981\u7528 \u7981\u7528 \u751f\u6210 \u91cd\u53e0 \u4e8b\u4ef6 \u78b0\u649e \u9884\u8bbe \u8bbe\u7f6e \u4e3a \u201c NoCollision \u201d \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 \u6c7d\u8f66 \u84dd\u56fe \u3002","title":"\u6dfb\u52a0 \u8f66\u8f86"},{"location":"how_to_add_assets/#_3","text":"\u5bf9\u4e8e \u9053\u8def \u751f\u6210 \uff0c \u9884\u8ba1 \u4f1a \u627e\u5230 \u4ee5\u4e0b \u7f51\u683c # Enum Filepath RoadTwoLanes _ LaneLeft at \" Content / Static / Road / St _ Road _ TileRoad _ RoadL . uasset \" RoadTwoLanes _ LaneRight at \" Content / Static / Road / St _ Road _ TileRoad _ RoadR . uasset \" RoadTwoLanes _ SidewalkLeft at \" Content / Static / SideWalk / St _ Road _ TileRoad _ SidewalkL . uasset \" RoadTwoLanes _ SidewalkRight at \" Content / Static / SideWalk / St _ Road _ TileRoad _ SidewalkR . uasset \" RoadTwoLanes _ LaneMarkingSolid at \" Content / Static / RoadLines / St _ Road _ TileRoad _ LaneMarkingSolid . uasset \" RoadTwoLanes _ LaneMarkingBroken at \" Content / Static / RoadLines / St _ Road _ TileRoad _ LaneMarkingBroken . uasset \" Road90DegTurn _ Lane0 at \" Content / Static / Road / St _ Road _ Curve _ Road1 . uasset \" Road90DegTurn _ Lane1 at \" Content / Static / Road / St _ Road _ Curve _ Road2 . uasset \" Road90DegTurn _ Lane2 at \" Content / Static / Road / St _ Road _ Curve _ Road3 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road4 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road5 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road6 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road7 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road8 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road9 . uasset \" Road90DegTurn _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk1 . uasset \" Road90DegTurn _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk2 . uasset \" Road90DegTurn _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk3 . uasset \" Road90DegTurn _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk4 . uasset \" Road90DegTurn _ LaneMarking at \" Content / Static / Road / St _ Road _ Curve _ LaneMarking . uasset \" RoadTIntersection _ Lane0 at \" Content / Static / Road / St _ Road _ TCross _ Road1 . uasset \" RoadTIntersection _ Lane1 at \" Content / Static / Road / St _ Road _ TCross _ Road2 . uasset \" RoadTIntersection _ Lane2 at \" Content / Static / Road / St _ Road _ TCross _ Road3 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road4 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road5 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road6 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road7 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road8 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road9 . uasset \" RoadTIntersection _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk1 . uasset \" RoadTIntersection _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk2 . uasset \" RoadTIntersection _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk3 . uasset \" RoadTIntersection _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk4 . uasset \" RoadTIntersection _ LaneMarking at \" Content / Static / RoadLines / St _ Road _ TCross _ LaneMarking . uasset \" RoadXIntersection _ Lane0 at \" Content / Static / Road / St _ Road _ XCross _ Road1 . uasset \" RoadXIntersection _ Lane1 at \" Content / Static / Road / St _ Road _ XCross _ Road2 . uasset \" RoadXIntersection _ Lane2 at \" Content / Static / Road / St _ Road _ XCross _ Road3 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road4 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road5 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road6 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road7 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road8 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road9 . uasset \" RoadXIntersection _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk1 . uasset \" RoadXIntersection _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk2 . uasset \" RoadXIntersection _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk3 . uasset \" RoadXIntersection _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk4 . uasset \" RoadXIntersection _ LaneMarking at \" Content / Static / RoadLines / St _ Road _ XCross _ LaneMarking . uasset \"","title":"\u5730\u56fe \u751f\u6210"},{"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 \u521b\u5efa \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 \u521b\u5efa \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":"Large map import"},{"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 \u521b\u5efa \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":"\u521b\u5efa \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4e58 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 \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 \u4e58 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":"leaderboard/","text":"\u6982\u8ff0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u7684 \u4e3b\u8981 \u76ee\u6807 \u662f \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u4eba\u5458 \u9a7e\u9a76\u4eba\u5458 \u5728 \u73b0\u5b9e \u4ea4\u901a \u573a\u666f \u4e2d \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \u3002 \u6392\u884c \u6392\u884c\u699c \u4f5c\u4e3a \u793e\u533a \u7684 \u5f00\u653e \u5e73\u53f0 \u5f00\u653e\u5e73\u53f0 \uff0c \u5bf9 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u4ee3\u7406 \u8fdb\u884c \u516c\u5e73 \u4e14 \u53ef \u91cd\u590d \u7684 \u8bc4\u4f30 \uff0c \u7b80\u5316 \u4e86 \u4e0d\u540c \u65b9\u6cd5 \u4e4b\u95f4 \u7684 \u6bd4\u8f83 \u3002 \u6392\u884c \u6392\u884c\u699c \u76ee\u524d \u4e3a 2.0 \u7248\u672c \uff0c \u4ecd \u652f\u6301 1.0 \u7248\u672c \u3002 \u4efb\u52a1 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u8981\u6c42 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u9a7e\u9a76 \u901a\u8fc7 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u8def\u7ebf \u3002 \u5bf9\u4e8e \u6bcf\u6761 \u8def\u7ebf \uff0c \u4ee3\u7406 \u5c06 \u5728 \u8d77\u70b9 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \uff0c \u5e76 \u5f15\u5bfc \u5176 \u884c\u9a76 \u81f3 \u76ee\u7684 \u76ee\u7684\u5730 \u70b9 \uff0c \u5e76 \u901a\u8fc7 GPS \u6837\u5f0f \u5750\u6807 \u3001 \u5730\u56fe \u5750\u6807 \u6216 \u8def\u7ebf \u6307\u4ee4 \u63d0\u4f9b \u8def\u7ebf \u63cf\u8ff0 \u3002 \u8def\u7ebf \u662f \u5728 \u591a\u79cd \u60c5\u51b5 \u4e0b\u5b9a \u5b9a\u4e49 \u4e0b\u5b9a\u4e49 \u7684 \uff0c \u5305\u62ec \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u57ce\u5e02 \u5730\u533a \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u6392\u884c \u6392\u884c\u699c \u8bc4\u4f30 \u5404\u79cd \u5929\u6c14 \u6761\u4ef6 \u4e0b \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \uff0c \u5305\u62ec \u65e5\u5149 \u573a\u666f \u3001 \u65e5\u843d \u3001 \u96e8 \u3001 \u96fe \u548c \u591c\u665a \u7b49 \u3002 \u5e94\u7528 \u573a\u666f \u4ee3\u7406 \u5c06 \u9762\u4e34 \u57fa\u4e8e NHTSA \u7c7b\u578b \u7684 \u591a\u79cd \u4ea4\u901a \u573a\u666f \u3002 \u53ef\u4ee5 \u5728 \u6b64 \u9875\u9762 \u4e2d \u67e5\u770b \u4ea4\u901a \u573a\u666f \u7684 \u5b8c\u6574 \u5217\u8868 \uff0c \u4f46 \u8fd9\u91cc \u6709 \u4e00\u4e9b \u793a\u4f8b \u3002 \u8f66\u9053 \u5408\u5e76 \u3002 \u53d8\u9053 \u3002 \u5728 \u4ea4\u901a \u8def\u53e3 \u8fdb\u884c \u534f\u5546 \u3002 \u5728 \u73af\u5c9b \u8fdb\u884c \u534f\u5546 \u3002 \u5904\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 \u7ed9 \u7d27\u6025 \u8f66\u8f86 \u8ba9 \u884c \u3002 \u5e94\u5bf9 \u884c\u4eba \u3001 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u548c \u5176\u4ed6 \u56e0\u7d20 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e2d \u7684 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u56fe\u89e3 \u3002 \u53c2\u4e0e \u65b9\u5f0f \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u4e24\u79cd \u53c2\u4e0e \u65b9\u5f0f \uff1a SENSORS \u548c MAP \u3002 \u8fd9\u4e9b \u65b9\u5f0f \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \u60a8 \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u4ece \u5e73\u53f0 \u8bf7\u6c42 \u7684 \u8f93\u5165 \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u4e24\u79cd \u6a21\u5f0f \u7684 \u4ee3\u7406 \u90fd \u5c06 \u6536\u5230 \u9ad8\u7ea7 \u8def\u7ebf \u63cf\u8ff0 \uff0c \u6307\u793a \u8def\u5f84 \u5fc5\u987b \u9075\u5faa \u7684 \u5173\u952e \u5173\u952e\u70b9 \u624d\u80fd \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u8be5 \u8def\u7ebf \u8868\u793a \u4e3a \u5143\u7ec4 \u5217\u8868 \uff0c \u5e76\u4e14 \u6709 \u4e24\u79cd \u53d8\u4f53 \u3002 \u5bf9\u4e8e \u7b2c\u4e00 \u4e00\u79cd \u7b2c\u4e00\u79cd \u60c5\u51b5 \uff0c \u5143\u7ec4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u5305\u542b \u4e00\u4e2a \u8def\u5f84 \u70b9 \uff0c \u8868\u793a \u4e3a \u7eac\u5ea6 \u3001 \u7ecf\u5ea6 \u548c \u5206\u91cf z \u3002 [ ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002271601998707 } , RoadOption . LEFT ) , ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002709765148996 } , RoadOption . RIGHT ) , ... ( { ' z ' : 0.0 , ' lat ' : 48.99822679980298 , ' lon ' : 8.002735250105061 } , RoadOption . STRAIGHT ) ] \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u60c5\u51b5 \u4e0e \u524d \u4e00\u79cd \u60c5\u51b5 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u4f7f\u7528 GPS \u5750\u6807 \uff0c \u800c\u662f \u7528 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8868\u793a \u8def\u7ebf \u3002 [ ( { ' x ' : 153.7 , ' y ' : 15.6 , ' z ' : 0.0 } , RoadOption . LEFT ) , ( { ' x ' : 148.9 , ' y ' : 67.8 , ' z ' : 0.0 } , RoadOption . RIGHT ) , ... ( { ' x ' : 180.7 , ' y ' : 45.1 , ' z ' : 1.2 } , RoadOption . STRAIGHT ) ] \u7b14\u8bb0 \u4e24\u4e2a \u8fde\u7eed \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u53ef\u80fd \u957f \u8fbe \u6570\u767e \u767e\u7c73 \u6570\u767e\u7c73 \u3002 \u4e0d\u8981 \u4f9d\u8d56 \u8fd9\u4e9b \u4f5c\u4e3a \u60a8 \u9a7e\u9a6d \u73af\u5883 \u7684 \u4e3b\u8981 \u673a\u5236 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u5305\u542b \u9ad8\u7ea7 \u547d\u4ee4 \u3002 \u53ef\u7528 \u7684 \u9ad8\u7ea7 \u547d\u4ee4 \u547d\u4ee4\u96c6 \u662f \uff1a RoadOption . CHANGELANELEFT \uff1a \u5411 \u5de6 \u79fb\u52a8 \u4e00\u6761 \u8f66\u9053 \u3002 RoadOption . CHANGELANERIGHT \uff1a \u5411 \u53f3 \u79fb\u52a8 \u4e00\u6761 \u8f66\u9053 \u3002 RoadOption . LANEFOLLOW \uff1a \u7ee7\u7eed \u5728 \u5f53\u524d \u8f66\u9053 \u4e0a \u884c\u9a76 \u3002 RoadOption . LEFT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5de6\u8f6c \u3002 RoadOption . RIGHT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u53f3\u8f6c \u3002 RoadOption . STRAIGHT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u4fdd\u6301 \u76f4\u884c \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u5f97 \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u7684 \u4efb\u4f55 \u7279\u6743 \u4fe1\u606f \uff0c \u5305\u62ec \u89c4\u5212 \u5668 \u6216 \u4efb\u4f55 \u7c7b\u578b \u7684 \u57fa\u672c \u4e8b\u5b9e \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u529f\u80fd \u7684 \u63d0\u4ea4 \u5c06 \u88ab \u62d2\u7edd \uff0c \u56e2\u961f \u5c06 \u88ab \u7981\u6b62 \u8fdb\u5165 \u8be5 \u5e73\u53f0 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f68\u8ff9 \u5728 \u6b64 \u8f68\u8ff9 \u4e0a \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8bf7\u6c42 \u8bbf\u95ee \u4ee5\u4e0b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u7b14\u8bb0 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5355\u4f4d \u90fd \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \uff0c \u4ee5 \u63a7\u5236 \u8ba1\u7b97 \u9884\u7b97 \u3002 \u5730\u56fe \u8f68\u8ff9 \u63d0\u4f9b \u4e0e SENSORS \u8f68\u8ff9 \u76f8\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7ec4 \u3002 \u6b64\u5916 \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8bf7\u6c42 \u8bbf\u95ee \u9ad8\u7cbe \u5730\u56fe \uff0c \u8be5 \u5730\u56fe \u4ee5 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u5f62\u5f0f \u63d0\u4f9b \u3002 \u7b14\u8bb0 \u60a8 \u5b8c\u5168 \u8d1f\u8d23 \u89e3\u6790 \u6b64 \u6587\u4ef6 \u6216 \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u5bf9 \u60a8 \u7684 \u4ee3\u7406 \u6709\u7528 \u7684 \u8868\u793a \u5f62\u5f0f \u3002 \u8d44\u683c \u8d44\u683c\u8d5b \u8d5b\u9053 \u6392\u884c \u6392\u884c\u699c 2.0 \u8bbe\u6709 2 \u6761 \u8d44\u683c \u8d44\u683c\u8d5b \u8d5b\u9053 \uff0c \u60a8 \u7684 \u4ee3\u7406 \u5c06 \u9700\u8981 \u901a\u8fc7 \u5177\u6709 \u7b80\u5355 \u9a7e\u9a76 \u573a\u666f \u7684 \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u7684 \u5730\u56fe \u5b89\u5168 \u5730 \u5bfc\u822a \u4e00\u6761 \u7b80\u5355 \u7684 \u8def\u7ebf \u3002 \u6bcf\u4e2a SENSOR \u548c MAP \u8f68\u9053 \u90fd \u6709 \u5176 \u5404\u81ea \u7684 \u9650\u5b9a \u9650\u5b9a\u7b26 \u3002 \u60a8 \u5fc5\u987b \u5728 \u9884\u9009 \u9884\u9009\u8d5b \u4e2d \u8fbe\u5230 \u6700\u4f4e \u9a7e\u9a76 \u5206\u6570 \uff0c \u624d\u80fd \u5141\u8bb8 \u5411 \u6392\u884c \u6392\u884c\u699c 2.0 \u4e3b \u8d5b\u9053 \u63d0\u4ea4 \u4ee3\u7406 \u3002 \u4e3a\u4e86 \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \uff0c \u9884\u9009 \u9884\u9009\u8d5b \u5c06 \u5141\u8bb8 \u4f7f\u7528 \u6bd4 \u4e3b\u8981 \u7ade\u4e89 \u5bf9\u624b \u7ade\u4e89\u5bf9\u624b \u66f4 \u4e25\u683c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5957\u4ef6 \uff0c \u5305\u62ec 0 - 4 \u4e2a RGB \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3001 0 - 2 \u4e2a \u96f7\u8fbe \u548c 0 - 1 \u4e2a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u4ee5\u53ca \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 IMU \u548c \u901f\u5ea6 \u901f\u5ea6\u8ba1 \uff08 \u4ee5\u53ca \u7528\u4e8e MAP \u8d5b\u9053 \u7684 OpenDRIVE \uff09 \u3002 \u6211\u4eec \u9f13\u52b1 \u60a8 \u4f7f\u7528 \u9650\u5b9a \u9650\u5b9a\u7b26 \u6765 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u5df2 \u6b63\u786e \u914d\u7f6e \u5e76 \u5728 \u6392\u884c \u6392\u884c\u699c \u4e0a \u6b63\u5e38 \u8fd0\u884c \u3002 \u8bc4\u4f30 \u548c \u6307\u6807 \u4ee3\u7406 \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \u53ef\u4ee5 \u901a\u8fc7 \u591a\u79cd \u6307\u6807 \u6765 \u8868\u5f81 \u3002 \u5bf9\u4e8e \u8fd9\u4e2a \u6392\u884c \u6392\u884c\u699c \uff0c \u6211\u4eec \u9009\u62e9 \u4e86 \u4e00\u7ec4 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u9a7e\u9a76 \u4e0d\u540c \u65b9\u9762 \u7684 \u6307\u6807 \u3002 \u867d\u7136 \u6240\u6709 \u8def\u7531 \u90fd \u5177\u6709 \u76f8\u540c \u7c7b\u578b \u7684 \u6307\u6807 \uff0c \u4f46 \u5b83\u4eec \u5404\u81ea \u7684 \u503c \u662f \u5355\u72ec \u8ba1\u7b97 \u7684 \u3002 \u5177\u4f53 \u6307\u6807 \u5982\u4e0b \uff1a \u9a7e\u9a76 \u5206\u6570 \uff1a ( { R _ i P _ i } , ) \u2014 \u6392\u884c \u6392\u884c\u699c \u7684 \u4e3b\u8981 \u6307\u6807 \uff0c \u4f5c\u4e3a \u8def\u7ebf \u5b8c\u6210 \u4e0e \u8fdd\u89c4 \u5904\u7f5a \u4e4b\u95f4 \u7684 \u4e58\u79ef \u3002 \u8fd9\u91cc ( Ri ) \u662f ( i \u2212 th ) \u8def\u7ebf \u7684 \u5b8c\u6210 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u800c ( Pi ) \u662f ( i \u2212 th ) \u8def\u7ebf \u7684 \u8fdd\u89c4 \u5904\u7f5a \u3002 \u8def\u7ebf \u5b8c\u6210 \uff1a \u5ba2\u670d \u4eba\u5458 \u5b8c\u6210 \u7684 \u8def\u7ebf \u8ddd\u79bb \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8fdd\u89c4 \u5904\u7f5a : ( \\ prod _ j ^ { \\ text { ped . , ... , stop } } ( { p _ i ^ j } ) ^ { \\ text { # infractions } _ j } . ) \u2014 \u6392\u884c \u6392\u884c\u699c \u8ddf\u8e2a \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u8be5 \u6307\u6807 \u5c06 \u4ee3\u7406 \u89e6\u53d1 \u7684 \u6240\u6709 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u6c47\u603b \u4e3a \u51e0\u4f55 \u7ea7\u6570 \u51e0\u4f55\u7ea7\u6570 \u3002 \u4ee3\u7406 \u7684 \u7406\u60f3 \u57fa\u7840 \u5206\u6570 \u662f 1.0 \uff0c \u6bcf \u72af\u4e0b \u4e00\u79cd \u7c7b\u578b \u7684 \u8fdd\u89c4 \uff0c \u8be5 \u5206\u6570 \u90fd \u4f1a \u964d\u4f4e \u3002 \u5f53 \u6240\u6709 \u8def\u7531 \u5b8c\u6210 \u540e \uff0c \u8fd8\u4f1a \u751f\u6210 \u524d \u4e09\u79cd \u7c7b\u578b \u4e2d \u6bcf \u4e00\u79cd \u7684 \u5168\u5c40 \u5ea6\u91cf \uff0c \u5373 \u6240\u6709 \u5355\u72ec \u8def\u7531 \u7ec4\u5408 \u7684 \u7b97\u672f \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u3002 \u5168\u5c40 \u9a7e\u9a76 \u5206\u6570 \u662f \u5bf9 \u60a8 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fdb\u884c \u5206\u7c7b \u7684 \u4e3b\u8981 \u6307\u6807 \u3002 \u8fdd\u89c4 \u548c \u5173\u95ed \u4e8b\u4ef6 Carla \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u7684 \u5355\u72ec \u6307\u6807 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u6709 \u4e00\u4e2a \u60e9\u7f5a \u7cfb\u6570 \uff0c \u6bcf\u6b21 \u53d1\u751f \u65f6 \u90fd \u4f1a \u5e94\u7528 \u8be5 \u7cfb\u6570 \u3002 \u6309 \u4e25\u91cd \u7a0b\u5ea6 \u6392\u5e8f \uff0c \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u5982\u4e0b \u3002 \u4e0e \u884c\u4eba \u76f8\u649e \u2014 0.50 . \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u2014 0.60 . \u4e0e \u9759\u6001 \u5143\u7d20 \u7684 \u78b0\u649e - 0.65 . \u7ea2\u706f \u95ef\u7ea2\u706f \u2014 \u2014 0.70 \u3002 \u8fd0\u884c \u505c\u8f66 \u6807\u5fd7 \u2014 0.80 . \u67d0\u4e9b \u573a\u666f \u7684 \u884c\u4e3a \u53ef\u4ee5 \u65e0\u9650 \u9650\u671f \u65e0\u9650\u671f \u5730 \u963b\u6b62 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u573a\u666f \u5c06 \u6709 4 \u5206\u949f \u7684 \u8d85\u65f6 \u65f6\u95f4 \uff0c \u4e4b\u540e \u81ea\u52a8 \u8f66\u8f86 \u5c06 \u88ab \u91ca\u653e \u4ee5 \u7ee7\u7eed \u8def\u7ebf \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8d85\u8fc7 \u65f6\u9650 \uff0c \u5219 \u4f1a \u53d7\u5230 \u5904\u7f5a \uff1a \u573a\u666f \u8d85\u65f6 \u2014 0.7 \u9884\u8ba1 \u4ee3\u7406 \u5c06 \u4fdd\u6301 \u6700\u4f4e \u901f\u5ea6 \u4ee5 \u9002\u5e94 \u9644\u8fd1 \u7684 \u4ea4\u901a \u3002 \u4ee3\u7406 \u7684 \u901f\u5ea6 \u5c06 \u4e0e \u9644\u8fd1 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u8fdb\u884c \u6bd4\u8f83 \u3002 \u672a\u80fd \u4fdd\u6301 \u9002\u5f53 \u7684 \u901f\u5ea6 \u5c06 \u53d7\u5230 \u5904\u7f5a \u3002 \u6240 \u65bd\u52a0 \u7684 \u60e9\u7f5a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u901f\u5ea6 \u5dee \u7684 \u5927\u5c0f \uff0c \u6700\u9ad8 \u53ef \u8fbe \u4ee5\u4e0b \u503c \uff1a \u672a\u80fd \u4fdd\u6301 \u6700\u4f4e \u901f\u5ea6 \u2014 0.7 \u7279\u5de5 \u5e94\u8be5 \u7ed9 \u4ece \u540e\u9762 \u9a76\u6765 \u7684 \u7d27\u6025 \u8f66\u8f86 \u8ba9\u8def \u3002 \u4e0d\u8ba9 \u7d27\u6025 \u8f66\u8f86 \u901a\u8fc7 \u5c06 \u53d7\u5230 \u5904\u7f5a \uff1a \u672a\u80fd \u7ed9 \u7d27\u6025 \u8f66\u8f86 \u8ba9\u8def \u2014 0.7 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u8fd8\u6709 \u4e00\u79cd \u989d\u5916 \u7684 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \uff0c \u5b83 \u6ca1\u6709 \u7cfb\u6570 \uff0c \u800c\u662f \u5f71\u54cd \u8def\u7ebf \u5b8c\u6210 \uff08 ( R _ i ) \uff09 \u7684 \u8ba1\u7b97 \u3002 \u8d8a\u91ce \u9a7e\u9a76 - \u5982\u679c \u4ee3\u7406 \u9a7e\u9a76 \u8d8a\u91ce \uff0c \u5219 \u5728 \u8ba1\u7b97 \u8def\u7ebf \u5b8c\u6210 \u5206\u6570 \u65f6 \u5c06 \u4e0d\u4f1a \u8003\u8651 \u8be5 \u8def\u7ebf \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u6b64\u5916 \uff0c \u67d0\u4e9b \u4e8b\u4ef6 \u4f1a \u4e2d\u65ad \u4eff\u771f \uff0c \u4ece\u800c \u963b\u6b62 \u4ee3\u7406 \u7ee7\u7eed \u8fdb\u884c \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6b63\u5728 \u4eff\u771f \u7684 \u8def\u7ebf \u5c06 \u88ab \u5173\u95ed \uff0c \u6392\u884c \u6392\u884c\u699c \u5c06 \u79fb\u81f3 \u4e0b \u4e00\u6761 \uff0c \u6b63\u5e38 \u89e6\u53d1 \u3002 \u8def\u7ebf \u504f\u5dee 30 - \u5982\u679c \u5ba2\u670d \u4eba\u5458 \u504f\u79bb \u6307\u5b9a \u8def\u7ebf \u8d85\u8fc7 \u7c73 \u3002 \u4ee3\u7406 \u88ab \u963b\u6b62 180 \u2014 \u5982\u679c \u4ee3\u7406 \u5728 \u4eff\u771f \u79d2 \u5185 \u6ca1\u6709 \u91c7\u53d6 \u4efb\u4f55 \u91c7\u53d6\u4efb\u4f55 \u64cd\u4f5c \u3002 \u4eff\u771f \u8d85\u65f6 \u2014 \u2014 \u5982\u679c \u5728 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5185 \u65e0\u6cd5 \u5efa\u7acb \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 60 \u3002 \u8def\u7ebf \u8d85\u65f6 - \u5982\u679c \u8def\u7ebf \u4eff\u771f \u82b1\u8d39 \u592a \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u6bcf\u6b21 \u53d1\u751f \u4e0a\u8ff0 \u4efb\u4f55 \u60c5\u51b5 \u65f6 \uff0c \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8fd9\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u5c06 \u663e\u793a \u4e3a \u5217\u8868 \uff0c \u4f9b \u60a8 \u67e5\u770b \u8def\u7ebf \u7684 \u5404\u4e2a \u6307\u6807 \u3002 \u4ee5\u4e0b \u662f \u4ee3\u7406 \u7ea2\u706f \u95ef\u7ea2\u706f \u5e76 \u504f\u79bb \u8def\u7ebf \u7684 \u8def\u7ebf \u793a\u4f8b \u3002 \" infractions \" : { \" Collisions with layout \" : [ ] , \" Collisions with pedestrians \" : [ ] , \" Collisions with vehicles \" : [ ] , \" Red lights infractions \" : [ \" Agent ran a red light 203 at ( x = 341.25 , y = 209.1 , z = 0.104 ) \" ] , \" Stop sign infractions \" : [ ] , \" Off - road infractions \" : [ ] , \" Min speed infractions \" : [ ] , \" Yield to emergency vehicle infractions \" : [ ] , \" Scenario timeouts \" : [ ] , \" Route deviations \" : [ \" Agent deviated from the route at ( x = 95.92 , y = 165.673 , z = 0.138 ) \" ] , \" Agent blocked \" : [ ] , \" Route timeouts \" : [ ] } \u7b14\u8bb0 \u5168\u5c40 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u5c06 \u5404\u4e2a \u8def\u7ebf \u7684 \u6570\u636e \u538b\u7f29 \u6570\u636e\u538b\u7f29 \u4e3a \u5355\u4e2a \u503c \uff0c \u5e76 \u4ee5 \u6bcf \u516c\u91cc \u7684 \u4e8b\u4ef6 \u6570 \u7ed9\u51fa \u3002 \u5f00\u59cb \u4f7f\u7528 \u4e3a\u4e86 \u719f\u6089 \u6392\u884c \u6392\u884c\u699c \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u4ed4\u7ec6 \u9605\u8bfb \u4ed4\u7ec6\u9605\u8bfb \u201c \u5165\u95e8 \u201d \u90e8\u5206 \u3002 \u8bf7\u82b1 \u8db3\u591f \u7684 \u65f6\u95f4 \u786e\u4fdd \u4e00\u5207 \u5728 \u672c\u5730 \u6309 \u9884\u671f \u8fd0\u884c \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u8bf7 \u68c0\u67e5 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u51c6\u5907 \u63d0\u4ea4 \u3002 \u6392\u884c \u6392\u884c\u699c 1.0 \u6392\u884c \u6392\u884c\u699c \u76ee\u524d \u4e3a 2.0 \u7248\u672c \u3002 \u6392\u884c \u6392\u884c\u699c 1.0 \u7248 \u4ecd\u7136 \u53ef\u4ee5 \u652f\u6301 \u60a8 \u4e4b\u524d \u7684 \u5de5\u4f5c \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u201c \u5f00\u59cb \u201d \u548c \u201c \u63d0\u4ea4 \u201d \u9875\u9762 \u4ee5 \u83b7\u53d6 \u6392\u884c \u6392\u884c\u699c 1.0 \u7248\u672c \u7684 \u63d0\u4ea4 \u4fe1\u606f \u3002 \u6761\u6b3e \u548c \u6761\u4ef6 \u611f\u8c22 \u6211\u4eec \u7684 \u8d5e\u52a9 \u8d5e\u52a9\u5546 \u548c \u5408\u4f5c \u4f5c\u8005 \u5408\u4f5c\u8005 \u7684 \u6177\u6168 \u89e3\u56ca \u6177\u6168\u89e3\u56ca \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4f5c\u4e3a \u4e00\u9879 \u5411 \u7814\u7a76 \u754c \u63d0\u4f9b \u7684 \u670d\u52a1 \u514d\u8d39 \u63d0\u4f9b \u3002 \u6bcf\u4e2a \u63d0\u4ea4 \u90fd \u5c06 \u5728 AWS \u4e2d \u4f7f\u7528 g5.12 xlarge \u5b9e\u4f8b \u8fdb\u884c \u8bc4\u4f30 \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u8bbf\u95ee \u5177\u6709 \u73b0\u4ee3 GPU \u548c CPU \u7684 \u4e13\u7528 \u8282\u70b9 \u3002 \u6bcf\u4e2a \u6708 \u5411 \u56e2\u961f \u63d0\u4ea4 \u7684 \u63d0\u4ea4 \u6570\u91cf \u6709\u9650 \uff08 \u76ee\u524d \u4e3a 5 \u4efd \uff09 \u3002 \u63d0\u4ea4 \u6d25\u8d34 \u6bcf\u6708 \u81ea\u52a8 \u8865\u5145 \u3002 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u7ec4\u7ec7 \u7ec4\u7ec7\u8005 \u4fdd\u7559 \u5411 \u56e2\u961f \u5206\u914d \u989d\u5916 \u6d25\u8d34 \u7684 \u6743\u5229 \u3002 \u8be5 \u7ec4\u7ec7 \u8fd8 \u4fdd\u7559 \u4fee\u6539 \u6bcf\u6708 \u63d0\u4ea4 \u6d25\u8d34 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u7684 \u6743\u5229 \u3002 \u4e25\u683c \u7981\u6b62 \u6ee5\u7528 \u6216 \u653b\u51fb Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \uff0c \u5305\u62ec \u7528\u4e8e \u8fd0\u884c \u670d\u52a1 \u7684 \u6240\u6709 \u8f6f\u4ef6 \u548c \u786c\u4ef6 \u3002 \u504f\u79bb Carla \u6392\u884c \u6392\u884c\u699c \u7cbe\u795e \u7684 \u884c\u4e3a \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u56e2\u961f \u89e3\u6563 \u3002 \u5982\u9700 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8bf4\u660e \uff0c \u8bf7 \u9605\u8bfb \u6761\u6b3e \u548c \u6761\u4ef6 \u3002 \u6027\u80fd \u6392\u884c \u6392\u884c\u699c","title":"\u6982\u8ff0"},{"location":"leaderboard/#_1","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u7684 \u4e3b\u8981 \u76ee\u6807 \u662f \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u4eba\u5458 \u9a7e\u9a76\u4eba\u5458 \u5728 \u73b0\u5b9e \u4ea4\u901a \u573a\u666f \u4e2d \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \u3002 \u6392\u884c \u6392\u884c\u699c \u4f5c\u4e3a \u793e\u533a \u7684 \u5f00\u653e \u5e73\u53f0 \u5f00\u653e\u5e73\u53f0 \uff0c \u5bf9 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u4ee3\u7406 \u8fdb\u884c \u516c\u5e73 \u4e14 \u53ef \u91cd\u590d \u7684 \u8bc4\u4f30 \uff0c \u7b80\u5316 \u4e86 \u4e0d\u540c \u65b9\u6cd5 \u4e4b\u95f4 \u7684 \u6bd4\u8f83 \u3002 \u6392\u884c \u6392\u884c\u699c \u76ee\u524d \u4e3a 2.0 \u7248\u672c \uff0c \u4ecd \u652f\u6301 1.0 \u7248\u672c \u3002","title":"\u6982\u8ff0"},{"location":"leaderboard/#_2","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u8981\u6c42 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u9a7e\u9a76 \u901a\u8fc7 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u8def\u7ebf \u3002 \u5bf9\u4e8e \u6bcf\u6761 \u8def\u7ebf \uff0c \u4ee3\u7406 \u5c06 \u5728 \u8d77\u70b9 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \uff0c \u5e76 \u5f15\u5bfc \u5176 \u884c\u9a76 \u81f3 \u76ee\u7684 \u76ee\u7684\u5730 \u70b9 \uff0c \u5e76 \u901a\u8fc7 GPS \u6837\u5f0f \u5750\u6807 \u3001 \u5730\u56fe \u5750\u6807 \u6216 \u8def\u7ebf \u6307\u4ee4 \u63d0\u4f9b \u8def\u7ebf \u63cf\u8ff0 \u3002 \u8def\u7ebf \u662f \u5728 \u591a\u79cd \u60c5\u51b5 \u4e0b\u5b9a \u5b9a\u4e49 \u4e0b\u5b9a\u4e49 \u7684 \uff0c \u5305\u62ec \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u57ce\u5e02 \u5730\u533a \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u6392\u884c \u6392\u884c\u699c \u8bc4\u4f30 \u5404\u79cd \u5929\u6c14 \u6761\u4ef6 \u4e0b \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \uff0c \u5305\u62ec \u65e5\u5149 \u573a\u666f \u3001 \u65e5\u843d \u3001 \u96e8 \u3001 \u96fe \u548c \u591c\u665a \u7b49 \u3002","title":"\u4efb\u52a1"},{"location":"leaderboard/#_3","text":"\u4ee3\u7406 \u5c06 \u9762\u4e34 \u57fa\u4e8e NHTSA \u7c7b\u578b \u7684 \u591a\u79cd \u4ea4\u901a \u573a\u666f \u3002 \u53ef\u4ee5 \u5728 \u6b64 \u9875\u9762 \u4e2d \u67e5\u770b \u4ea4\u901a \u573a\u666f \u7684 \u5b8c\u6574 \u5217\u8868 \uff0c \u4f46 \u8fd9\u91cc \u6709 \u4e00\u4e9b \u793a\u4f8b \u3002 \u8f66\u9053 \u5408\u5e76 \u3002 \u53d8\u9053 \u3002 \u5728 \u4ea4\u901a \u8def\u53e3 \u8fdb\u884c \u534f\u5546 \u3002 \u5728 \u73af\u5c9b \u8fdb\u884c \u534f\u5546 \u3002 \u5904\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 \u7ed9 \u7d27\u6025 \u8f66\u8f86 \u8ba9 \u884c \u3002 \u5e94\u5bf9 \u884c\u4eba \u3001 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u548c \u5176\u4ed6 \u56e0\u7d20 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e2d \u7684 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u56fe\u89e3 \u3002","title":"\u5e94\u7528 \u573a\u666f"},{"location":"leaderboard/#_4","text":"\u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u4e24\u79cd \u53c2\u4e0e \u65b9\u5f0f \uff1a SENSORS \u548c MAP \u3002 \u8fd9\u4e9b \u65b9\u5f0f \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \u60a8 \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u4ece \u5e73\u53f0 \u8bf7\u6c42 \u7684 \u8f93\u5165 \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u4e24\u79cd \u6a21\u5f0f \u7684 \u4ee3\u7406 \u90fd \u5c06 \u6536\u5230 \u9ad8\u7ea7 \u8def\u7ebf \u63cf\u8ff0 \uff0c \u6307\u793a \u8def\u5f84 \u5fc5\u987b \u9075\u5faa \u7684 \u5173\u952e \u5173\u952e\u70b9 \u624d\u80fd \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u8be5 \u8def\u7ebf \u8868\u793a \u4e3a \u5143\u7ec4 \u5217\u8868 \uff0c \u5e76\u4e14 \u6709 \u4e24\u79cd \u53d8\u4f53 \u3002 \u5bf9\u4e8e \u7b2c\u4e00 \u4e00\u79cd \u7b2c\u4e00\u79cd \u60c5\u51b5 \uff0c \u5143\u7ec4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u5305\u542b \u4e00\u4e2a \u8def\u5f84 \u70b9 \uff0c \u8868\u793a \u4e3a \u7eac\u5ea6 \u3001 \u7ecf\u5ea6 \u548c \u5206\u91cf z \u3002 [ ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002271601998707 } , RoadOption . LEFT ) , ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002709765148996 } , RoadOption . RIGHT ) , ... ( { ' z ' : 0.0 , ' lat ' : 48.99822679980298 , ' lon ' : 8.002735250105061 } , RoadOption . STRAIGHT ) ] \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u60c5\u51b5 \u4e0e \u524d \u4e00\u79cd \u60c5\u51b5 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u4f7f\u7528 GPS \u5750\u6807 \uff0c \u800c\u662f \u7528 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8868\u793a \u8def\u7ebf \u3002 [ ( { ' x ' : 153.7 , ' y ' : 15.6 , ' z ' : 0.0 } , RoadOption . LEFT ) , ( { ' x ' : 148.9 , ' y ' : 67.8 , ' z ' : 0.0 } , RoadOption . RIGHT ) , ... ( { ' x ' : 180.7 , ' y ' : 45.1 , ' z ' : 1.2 } , RoadOption . STRAIGHT ) ] \u7b14\u8bb0 \u4e24\u4e2a \u8fde\u7eed \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u53ef\u80fd \u957f \u8fbe \u6570\u767e \u767e\u7c73 \u6570\u767e\u7c73 \u3002 \u4e0d\u8981 \u4f9d\u8d56 \u8fd9\u4e9b \u4f5c\u4e3a \u60a8 \u9a7e\u9a6d \u73af\u5883 \u7684 \u4e3b\u8981 \u673a\u5236 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u5305\u542b \u9ad8\u7ea7 \u547d\u4ee4 \u3002 \u53ef\u7528 \u7684 \u9ad8\u7ea7 \u547d\u4ee4 \u547d\u4ee4\u96c6 \u662f \uff1a RoadOption . CHANGELANELEFT \uff1a \u5411 \u5de6 \u79fb\u52a8 \u4e00\u6761 \u8f66\u9053 \u3002 RoadOption . CHANGELANERIGHT \uff1a \u5411 \u53f3 \u79fb\u52a8 \u4e00\u6761 \u8f66\u9053 \u3002 RoadOption . LANEFOLLOW \uff1a \u7ee7\u7eed \u5728 \u5f53\u524d \u8f66\u9053 \u4e0a \u884c\u9a76 \u3002 RoadOption . LEFT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5de6\u8f6c \u3002 RoadOption . RIGHT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u53f3\u8f6c \u3002 RoadOption . STRAIGHT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u4fdd\u6301 \u76f4\u884c \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u5f97 \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u7684 \u4efb\u4f55 \u7279\u6743 \u4fe1\u606f \uff0c \u5305\u62ec \u89c4\u5212 \u5668 \u6216 \u4efb\u4f55 \u7c7b\u578b \u7684 \u57fa\u672c \u4e8b\u5b9e \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u529f\u80fd \u7684 \u63d0\u4ea4 \u5c06 \u88ab \u62d2\u7edd \uff0c \u56e2\u961f \u5c06 \u88ab \u7981\u6b62 \u8fdb\u5165 \u8be5 \u5e73\u53f0 \u3002","title":"\u53c2\u4e0e \u65b9\u5f0f"},{"location":"leaderboard/#_5","text":"\u5728 \u6b64 \u8f68\u8ff9 \u4e0a \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8bf7\u6c42 \u8bbf\u95ee \u4ee5\u4e0b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u7b14\u8bb0 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5355\u4f4d \u90fd \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \uff0c \u4ee5 \u63a7\u5236 \u8ba1\u7b97 \u9884\u7b97 \u3002","title":"\u4f20\u611f\u5668 \u8f68\u8ff9"},{"location":"leaderboard/#_6","text":"\u63d0\u4f9b \u4e0e SENSORS \u8f68\u8ff9 \u76f8\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7ec4 \u3002 \u6b64\u5916 \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8bf7\u6c42 \u8bbf\u95ee \u9ad8\u7cbe \u5730\u56fe \uff0c \u8be5 \u5730\u56fe \u4ee5 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u5f62\u5f0f \u63d0\u4f9b \u3002 \u7b14\u8bb0 \u60a8 \u5b8c\u5168 \u8d1f\u8d23 \u89e3\u6790 \u6b64 \u6587\u4ef6 \u6216 \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u5bf9 \u60a8 \u7684 \u4ee3\u7406 \u6709\u7528 \u7684 \u8868\u793a \u5f62\u5f0f \u3002","title":"\u5730\u56fe \u8f68\u8ff9"},{"location":"leaderboard/#_7","text":"\u6392\u884c \u6392\u884c\u699c 2.0 \u8bbe\u6709 2 \u6761 \u8d44\u683c \u8d44\u683c\u8d5b \u8d5b\u9053 \uff0c \u60a8 \u7684 \u4ee3\u7406 \u5c06 \u9700\u8981 \u901a\u8fc7 \u5177\u6709 \u7b80\u5355 \u9a7e\u9a76 \u573a\u666f \u7684 \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u7684 \u5730\u56fe \u5b89\u5168 \u5730 \u5bfc\u822a \u4e00\u6761 \u7b80\u5355 \u7684 \u8def\u7ebf \u3002 \u6bcf\u4e2a SENSOR \u548c MAP \u8f68\u9053 \u90fd \u6709 \u5176 \u5404\u81ea \u7684 \u9650\u5b9a \u9650\u5b9a\u7b26 \u3002 \u60a8 \u5fc5\u987b \u5728 \u9884\u9009 \u9884\u9009\u8d5b \u4e2d \u8fbe\u5230 \u6700\u4f4e \u9a7e\u9a76 \u5206\u6570 \uff0c \u624d\u80fd \u5141\u8bb8 \u5411 \u6392\u884c \u6392\u884c\u699c 2.0 \u4e3b \u8d5b\u9053 \u63d0\u4ea4 \u4ee3\u7406 \u3002 \u4e3a\u4e86 \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \uff0c \u9884\u9009 \u9884\u9009\u8d5b \u5c06 \u5141\u8bb8 \u4f7f\u7528 \u6bd4 \u4e3b\u8981 \u7ade\u4e89 \u5bf9\u624b \u7ade\u4e89\u5bf9\u624b \u66f4 \u4e25\u683c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5957\u4ef6 \uff0c \u5305\u62ec 0 - 4 \u4e2a RGB \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3001 0 - 2 \u4e2a \u96f7\u8fbe \u548c 0 - 1 \u4e2a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u4ee5\u53ca \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 IMU \u548c \u901f\u5ea6 \u901f\u5ea6\u8ba1 \uff08 \u4ee5\u53ca \u7528\u4e8e MAP \u8d5b\u9053 \u7684 OpenDRIVE \uff09 \u3002 \u6211\u4eec \u9f13\u52b1 \u60a8 \u4f7f\u7528 \u9650\u5b9a \u9650\u5b9a\u7b26 \u6765 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u5df2 \u6b63\u786e \u914d\u7f6e \u5e76 \u5728 \u6392\u884c \u6392\u884c\u699c \u4e0a \u6b63\u5e38 \u8fd0\u884c \u3002","title":"\u8d44\u683c\u8d5b \u8d5b\u9053"},{"location":"leaderboard/#_8","text":"\u4ee3\u7406 \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \u53ef\u4ee5 \u901a\u8fc7 \u591a\u79cd \u6307\u6807 \u6765 \u8868\u5f81 \u3002 \u5bf9\u4e8e \u8fd9\u4e2a \u6392\u884c \u6392\u884c\u699c \uff0c \u6211\u4eec \u9009\u62e9 \u4e86 \u4e00\u7ec4 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u9a7e\u9a76 \u4e0d\u540c \u65b9\u9762 \u7684 \u6307\u6807 \u3002 \u867d\u7136 \u6240\u6709 \u8def\u7531 \u90fd \u5177\u6709 \u76f8\u540c \u7c7b\u578b \u7684 \u6307\u6807 \uff0c \u4f46 \u5b83\u4eec \u5404\u81ea \u7684 \u503c \u662f \u5355\u72ec \u8ba1\u7b97 \u7684 \u3002 \u5177\u4f53 \u6307\u6807 \u5982\u4e0b \uff1a \u9a7e\u9a76 \u5206\u6570 \uff1a ( { R _ i P _ i } , ) \u2014 \u6392\u884c \u6392\u884c\u699c \u7684 \u4e3b\u8981 \u6307\u6807 \uff0c \u4f5c\u4e3a \u8def\u7ebf \u5b8c\u6210 \u4e0e \u8fdd\u89c4 \u5904\u7f5a \u4e4b\u95f4 \u7684 \u4e58\u79ef \u3002 \u8fd9\u91cc ( Ri ) \u662f ( i \u2212 th ) \u8def\u7ebf \u7684 \u5b8c\u6210 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u800c ( Pi ) \u662f ( i \u2212 th ) \u8def\u7ebf \u7684 \u8fdd\u89c4 \u5904\u7f5a \u3002 \u8def\u7ebf \u5b8c\u6210 \uff1a \u5ba2\u670d \u4eba\u5458 \u5b8c\u6210 \u7684 \u8def\u7ebf \u8ddd\u79bb \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8fdd\u89c4 \u5904\u7f5a : ( \\ prod _ j ^ { \\ text { ped . , ... , stop } } ( { p _ i ^ j } ) ^ { \\ text { # infractions } _ j } . ) \u2014 \u6392\u884c \u6392\u884c\u699c \u8ddf\u8e2a \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u8be5 \u6307\u6807 \u5c06 \u4ee3\u7406 \u89e6\u53d1 \u7684 \u6240\u6709 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u6c47\u603b \u4e3a \u51e0\u4f55 \u7ea7\u6570 \u51e0\u4f55\u7ea7\u6570 \u3002 \u4ee3\u7406 \u7684 \u7406\u60f3 \u57fa\u7840 \u5206\u6570 \u662f 1.0 \uff0c \u6bcf \u72af\u4e0b \u4e00\u79cd \u7c7b\u578b \u7684 \u8fdd\u89c4 \uff0c \u8be5 \u5206\u6570 \u90fd \u4f1a \u964d\u4f4e \u3002 \u5f53 \u6240\u6709 \u8def\u7531 \u5b8c\u6210 \u540e \uff0c \u8fd8\u4f1a \u751f\u6210 \u524d \u4e09\u79cd \u7c7b\u578b \u4e2d \u6bcf \u4e00\u79cd \u7684 \u5168\u5c40 \u5ea6\u91cf \uff0c \u5373 \u6240\u6709 \u5355\u72ec \u8def\u7531 \u7ec4\u5408 \u7684 \u7b97\u672f \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u3002 \u5168\u5c40 \u9a7e\u9a76 \u5206\u6570 \u662f \u5bf9 \u60a8 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fdb\u884c \u5206\u7c7b \u7684 \u4e3b\u8981 \u6307\u6807 \u3002","title":"\u8bc4\u4f30 \u548c \u6307\u6807"},{"location":"leaderboard/#_9","text":"Carla \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u7684 \u5355\u72ec \u6307\u6807 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u6709 \u4e00\u4e2a \u60e9\u7f5a \u7cfb\u6570 \uff0c \u6bcf\u6b21 \u53d1\u751f \u65f6 \u90fd \u4f1a \u5e94\u7528 \u8be5 \u7cfb\u6570 \u3002 \u6309 \u4e25\u91cd \u7a0b\u5ea6 \u6392\u5e8f \uff0c \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u5982\u4e0b \u3002 \u4e0e \u884c\u4eba \u76f8\u649e \u2014 0.50 . \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u2014 0.60 . \u4e0e \u9759\u6001 \u5143\u7d20 \u7684 \u78b0\u649e - 0.65 . \u7ea2\u706f \u95ef\u7ea2\u706f \u2014 \u2014 0.70 \u3002 \u8fd0\u884c \u505c\u8f66 \u6807\u5fd7 \u2014 0.80 . \u67d0\u4e9b \u573a\u666f \u7684 \u884c\u4e3a \u53ef\u4ee5 \u65e0\u9650 \u9650\u671f \u65e0\u9650\u671f \u5730 \u963b\u6b62 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u573a\u666f \u5c06 \u6709 4 \u5206\u949f \u7684 \u8d85\u65f6 \u65f6\u95f4 \uff0c \u4e4b\u540e \u81ea\u52a8 \u8f66\u8f86 \u5c06 \u88ab \u91ca\u653e \u4ee5 \u7ee7\u7eed \u8def\u7ebf \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8d85\u8fc7 \u65f6\u9650 \uff0c \u5219 \u4f1a \u53d7\u5230 \u5904\u7f5a \uff1a \u573a\u666f \u8d85\u65f6 \u2014 0.7 \u9884\u8ba1 \u4ee3\u7406 \u5c06 \u4fdd\u6301 \u6700\u4f4e \u901f\u5ea6 \u4ee5 \u9002\u5e94 \u9644\u8fd1 \u7684 \u4ea4\u901a \u3002 \u4ee3\u7406 \u7684 \u901f\u5ea6 \u5c06 \u4e0e \u9644\u8fd1 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u8fdb\u884c \u6bd4\u8f83 \u3002 \u672a\u80fd \u4fdd\u6301 \u9002\u5f53 \u7684 \u901f\u5ea6 \u5c06 \u53d7\u5230 \u5904\u7f5a \u3002 \u6240 \u65bd\u52a0 \u7684 \u60e9\u7f5a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u901f\u5ea6 \u5dee \u7684 \u5927\u5c0f \uff0c \u6700\u9ad8 \u53ef \u8fbe \u4ee5\u4e0b \u503c \uff1a \u672a\u80fd \u4fdd\u6301 \u6700\u4f4e \u901f\u5ea6 \u2014 0.7 \u7279\u5de5 \u5e94\u8be5 \u7ed9 \u4ece \u540e\u9762 \u9a76\u6765 \u7684 \u7d27\u6025 \u8f66\u8f86 \u8ba9\u8def \u3002 \u4e0d\u8ba9 \u7d27\u6025 \u8f66\u8f86 \u901a\u8fc7 \u5c06 \u53d7\u5230 \u5904\u7f5a \uff1a \u672a\u80fd \u7ed9 \u7d27\u6025 \u8f66\u8f86 \u8ba9\u8def \u2014 0.7 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u8fd8\u6709 \u4e00\u79cd \u989d\u5916 \u7684 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \uff0c \u5b83 \u6ca1\u6709 \u7cfb\u6570 \uff0c \u800c\u662f \u5f71\u54cd \u8def\u7ebf \u5b8c\u6210 \uff08 ( R _ i ) \uff09 \u7684 \u8ba1\u7b97 \u3002 \u8d8a\u91ce \u9a7e\u9a76 - \u5982\u679c \u4ee3\u7406 \u9a7e\u9a76 \u8d8a\u91ce \uff0c \u5219 \u5728 \u8ba1\u7b97 \u8def\u7ebf \u5b8c\u6210 \u5206\u6570 \u65f6 \u5c06 \u4e0d\u4f1a \u8003\u8651 \u8be5 \u8def\u7ebf \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u6b64\u5916 \uff0c \u67d0\u4e9b \u4e8b\u4ef6 \u4f1a \u4e2d\u65ad \u4eff\u771f \uff0c \u4ece\u800c \u963b\u6b62 \u4ee3\u7406 \u7ee7\u7eed \u8fdb\u884c \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6b63\u5728 \u4eff\u771f \u7684 \u8def\u7ebf \u5c06 \u88ab \u5173\u95ed \uff0c \u6392\u884c \u6392\u884c\u699c \u5c06 \u79fb\u81f3 \u4e0b \u4e00\u6761 \uff0c \u6b63\u5e38 \u89e6\u53d1 \u3002 \u8def\u7ebf \u504f\u5dee 30 - \u5982\u679c \u5ba2\u670d \u4eba\u5458 \u504f\u79bb \u6307\u5b9a \u8def\u7ebf \u8d85\u8fc7 \u7c73 \u3002 \u4ee3\u7406 \u88ab \u963b\u6b62 180 \u2014 \u5982\u679c \u4ee3\u7406 \u5728 \u4eff\u771f \u79d2 \u5185 \u6ca1\u6709 \u91c7\u53d6 \u4efb\u4f55 \u91c7\u53d6\u4efb\u4f55 \u64cd\u4f5c \u3002 \u4eff\u771f \u8d85\u65f6 \u2014 \u2014 \u5982\u679c \u5728 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5185 \u65e0\u6cd5 \u5efa\u7acb \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 60 \u3002 \u8def\u7ebf \u8d85\u65f6 - \u5982\u679c \u8def\u7ebf \u4eff\u771f \u82b1\u8d39 \u592a \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u6bcf\u6b21 \u53d1\u751f \u4e0a\u8ff0 \u4efb\u4f55 \u60c5\u51b5 \u65f6 \uff0c \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8fd9\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u5c06 \u663e\u793a \u4e3a \u5217\u8868 \uff0c \u4f9b \u60a8 \u67e5\u770b \u8def\u7ebf \u7684 \u5404\u4e2a \u6307\u6807 \u3002 \u4ee5\u4e0b \u662f \u4ee3\u7406 \u7ea2\u706f \u95ef\u7ea2\u706f \u5e76 \u504f\u79bb \u8def\u7ebf \u7684 \u8def\u7ebf \u793a\u4f8b \u3002 \" infractions \" : { \" Collisions with layout \" : [ ] , \" Collisions with pedestrians \" : [ ] , \" Collisions with vehicles \" : [ ] , \" Red lights infractions \" : [ \" Agent ran a red light 203 at ( x = 341.25 , y = 209.1 , z = 0.104 ) \" ] , \" Stop sign infractions \" : [ ] , \" Off - road infractions \" : [ ] , \" Min speed infractions \" : [ ] , \" Yield to emergency vehicle infractions \" : [ ] , \" Scenario timeouts \" : [ ] , \" Route deviations \" : [ \" Agent deviated from the route at ( x = 95.92 , y = 165.673 , z = 0.138 ) \" ] , \" Agent blocked \" : [ ] , \" Route timeouts \" : [ ] } \u7b14\u8bb0 \u5168\u5c40 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u5c06 \u5404\u4e2a \u8def\u7ebf \u7684 \u6570\u636e \u538b\u7f29 \u6570\u636e\u538b\u7f29 \u4e3a \u5355\u4e2a \u503c \uff0c \u5e76 \u4ee5 \u6bcf \u516c\u91cc \u7684 \u4e8b\u4ef6 \u6570 \u7ed9\u51fa \u3002","title":"\u8fdd\u89c4 \u548c \u5173\u95ed \u4e8b\u4ef6"},{"location":"leaderboard/#_10","text":"\u4e3a\u4e86 \u719f\u6089 \u6392\u884c \u6392\u884c\u699c \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u4ed4\u7ec6 \u9605\u8bfb \u4ed4\u7ec6\u9605\u8bfb \u201c \u5165\u95e8 \u201d \u90e8\u5206 \u3002 \u8bf7\u82b1 \u8db3\u591f \u7684 \u65f6\u95f4 \u786e\u4fdd \u4e00\u5207 \u5728 \u672c\u5730 \u6309 \u9884\u671f \u8fd0\u884c \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u8bf7 \u68c0\u67e5 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u51c6\u5907 \u63d0\u4ea4 \u3002","title":"\u5f00\u59cb \u4f7f\u7528"},{"location":"leaderboard/#10","text":"\u6392\u884c \u6392\u884c\u699c \u76ee\u524d \u4e3a 2.0 \u7248\u672c \u3002 \u6392\u884c \u6392\u884c\u699c 1.0 \u7248 \u4ecd\u7136 \u53ef\u4ee5 \u652f\u6301 \u60a8 \u4e4b\u524d \u7684 \u5de5\u4f5c \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u201c \u5f00\u59cb \u201d \u548c \u201c \u63d0\u4ea4 \u201d \u9875\u9762 \u4ee5 \u83b7\u53d6 \u6392\u884c \u6392\u884c\u699c 1.0 \u7248\u672c \u7684 \u63d0\u4ea4 \u4fe1\u606f \u3002","title":"\u6392\u884c\u699c 1.0"},{"location":"leaderboard/#_11","text":"\u611f\u8c22 \u6211\u4eec \u7684 \u8d5e\u52a9 \u8d5e\u52a9\u5546 \u548c \u5408\u4f5c \u4f5c\u8005 \u5408\u4f5c\u8005 \u7684 \u6177\u6168 \u89e3\u56ca \u6177\u6168\u89e3\u56ca \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4f5c\u4e3a \u4e00\u9879 \u5411 \u7814\u7a76 \u754c \u63d0\u4f9b \u7684 \u670d\u52a1 \u514d\u8d39 \u63d0\u4f9b \u3002 \u6bcf\u4e2a \u63d0\u4ea4 \u90fd \u5c06 \u5728 AWS \u4e2d \u4f7f\u7528 g5.12 xlarge \u5b9e\u4f8b \u8fdb\u884c \u8bc4\u4f30 \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u8bbf\u95ee \u5177\u6709 \u73b0\u4ee3 GPU \u548c CPU \u7684 \u4e13\u7528 \u8282\u70b9 \u3002 \u6bcf\u4e2a \u6708 \u5411 \u56e2\u961f \u63d0\u4ea4 \u7684 \u63d0\u4ea4 \u6570\u91cf \u6709\u9650 \uff08 \u76ee\u524d \u4e3a 5 \u4efd \uff09 \u3002 \u63d0\u4ea4 \u6d25\u8d34 \u6bcf\u6708 \u81ea\u52a8 \u8865\u5145 \u3002 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u7ec4\u7ec7 \u7ec4\u7ec7\u8005 \u4fdd\u7559 \u5411 \u56e2\u961f \u5206\u914d \u989d\u5916 \u6d25\u8d34 \u7684 \u6743\u5229 \u3002 \u8be5 \u7ec4\u7ec7 \u8fd8 \u4fdd\u7559 \u4fee\u6539 \u6bcf\u6708 \u63d0\u4ea4 \u6d25\u8d34 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u7684 \u6743\u5229 \u3002 \u4e25\u683c \u7981\u6b62 \u6ee5\u7528 \u6216 \u653b\u51fb Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \uff0c \u5305\u62ec \u7528\u4e8e \u8fd0\u884c \u670d\u52a1 \u7684 \u6240\u6709 \u8f6f\u4ef6 \u548c \u786c\u4ef6 \u3002 \u504f\u79bb Carla \u6392\u884c \u6392\u884c\u699c \u7cbe\u795e \u7684 \u884c\u4e3a \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u56e2\u961f \u89e3\u6563 \u3002 \u5982\u9700 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8bf4\u660e \uff0c \u8bf7 \u9605\u8bfb \u6761\u6b3e \u548c \u6761\u4ef6 \u3002 \u6027\u80fd \u6392\u884c \u6392\u884c\u699c","title":"\u6761\u6b3e \u548c \u6761\u4ef6"},{"location":"leaderboard_challenge/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b 2023 \u5e74 Carla \u6311\u6218 \u6311\u6218\u8d5b \u6982\u8ff0 \u6b22\u8fce \u53c2\u52a0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u3002 \u672c\u6b21 \u7ade\u8d5b \u5411 \u5b66\u672f \u5b66\u672f\u754c \u548c \u5de5\u4e1a \u4e1a\u754c \u5de5\u4e1a\u754c \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5f00\u653e \u3002 \u60a8 \u53ea \u9700 \u5728 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e0a \u6ce8\u518c \uff0c \u5e76 \u63d0\u4f9b \u60a8 \u7684 \u56e2\u961f \u540d\u79f0 \u548c \u6240\u5728 \u673a\u6784 \u5373\u53ef \u3002 \u8be5 \u6311\u6218 \u5229\u7528 \u73b0\u6709 \u7684 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5e73\u53f0 \u6765 \u8bc4\u4f30 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \u3002 \u6311\u6218 \u7684 \u4e3b\u8981 \u76ee\u6807 \u4ecd\u7136 \u662f \u8bc4\u4f30 \u81ea\u52a8 \u4ee3\u7406 \u5728 \u73b0\u5b9e \u4ea4\u901a \u60c5\u51b5 \u4e0b \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \uff0c \u5982 \u6392\u884c \u6392\u884c\u699c \u673a\u5236 \u4e2d \u6240 \u5b9a\u4e49 \u3002 \u53c2\u8d5b \u53c2\u8d5b\u961f \u5fc5\u987b \u5728 2 \u79cd \u5929\u6c14 \u6761\u4ef6 \u4e0b \u5b8c\u6210 10 \u6761 \u8def\u7ebf \uff0c \u91cd\u590d 5 \u6b21 \u3002 \u8be5 \u6311\u6218 \u9075\u5faa \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5b9a\u4e49 \u7684 \u76f8\u540c \u7ed3\u6784 \u548c \u89c4\u5219 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u53ef \u7528\u4e8e \u6311\u6218 \u7684 \u89c4\u8303 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u52a0 \u4e24\u4e2a \u53ef\u7528 \u8d5b\u9053 \u4e2d \u7684 \u4efb\u4f55 \u4e00\u4e2a \uff1a SENSORS \u548c MAP \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u5f97 \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u7684 \u4efb\u4f55 \u7279\u6743 \u4fe1\u606f \uff0c \u5305\u62ec \u89c4\u5212 \u5668 \u6216 \u4efb\u4f55 \u7c7b\u578b \u7684 \u57fa\u672c \u4e8b\u5b9e \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u529f\u80fd \u7684 \u63d0\u4ea4 \u5c06 \u88ab \u62d2\u7edd \uff0c \u56e2\u961f \u5c06 \u88ab \u7981\u6b62 \u8fdb\u5165 \u8be5 \u5e73\u53f0 \u3002 \u6311\u6218 \u7684 \u673a\u5236 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u7684 \u673a\u5236 \u4e0e Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5b9a\u4e49 \u7684 \u673a\u5236 \u76f8\u540c \u3002 \u800c\u8a00 \u7b80\u800c\u8a00\u4e4b \uff1a \u901a\u8fc7 \u9605\u8bfb \u6392\u884c \u6392\u884c\u699c \u4ecb\u7ecd \u6765 \u719f\u6089 \u4efb\u52a1 \u3002 \u901a\u8fc7 \u9605\u8bfb \u5165\u95e8 \u6307\u5357 \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u65b0 \u4ee3\u7406 \u3002 \u62a5\u540d \u53c2\u52a0 \u6311\u6218 \u3002 \u4e86\u89e3 \u5982\u4f55 \u6210\u529f \u63d0\u4ea4 \u3002 \u63d0\u4ea4 \u60a8 \u7684 \u4ee3\u7406 \u3002 \u5728 \u6311\u6218 \u7ed3\u675f \u65e5\u671f \u4e4b\u524d \u516c\u5f00 \u60a8 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u65f6\u95f4 \u65f6\u95f4\u8868 \uff09 \u3002 \u7b14\u8bb0 \u5728 \u6311\u6218 \u6311\u6218\u8d5b \u5f00\u59cb \u548c \u7ed3\u675f \u65e5\u671f \u5185\u5728 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e0a \u516c\u5f00 \u7684 \u6240\u6709 \u63d0\u4ea4 \u5185\u5bb9 \u90fd \u5c06 \u88ab \u8003\u8651 \u53c2\u52a0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u3002 \u6bcf\u4e2a \u8d5b\u9053 \u7684 \u524d 1 \u540d \u63d0\u4ea4 \u4f5c\u54c1 \u5c06 \u88ab \u9080\u8bf7 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u7814\u8ba8 \u7814\u8ba8\u4f1a \u4e0a \u5c55\u793a \u4ed6\u4eec \u7684 \u6210\u679c \u3002 \u6b64\u5916 \uff0c \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u88ab \u9080\u8bf7 \u63d0\u4ea4 \u4e00\u4efd \u63cf\u8ff0 \u5176 \u63d0\u4ea4 \u5185\u5bb9 \u7684 \u6280\u672f \u62a5\u544a \uff08 \u6700 \u591a 4 \u9875 \uff09 \u4ee5\u53ca \u63cf\u8ff0 \u5176 \u65b9\u6cd5 \u7684 \u89c6\u9891 \u3002 \u6839\u636e \u8fd9\u4e9b \u6280\u672f \u62a5\u544a \u7684 \u65b0\u9896 \u65b0\u9896\u6027 \u548c \u539f\u521b \u539f\u521b\u6027 \uff0c \u7ec4\u7ec7 \u5c06 \u9009\u62e9 \u6700 \u591a \u4e24\u4e2a \u56e2\u961f \u5728 \u7814\u8ba8 \u7814\u8ba8\u4f1a \u4e0a \u5c55\u793a \u4ed6\u4eec \u7684 \u5de5\u4f5c \u3002 \u4ee5\u524d \u7684 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u5982\u9700 \u4e86\u89e3 \u6709\u5173 \u4e4b\u524d \u6311\u6218 \u53ca\u5176 \u7ed3\u679c \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 2022 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2022 \u4e0a \u4e3b\u529e \uff1b 2021 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2021 \u4e0a \u4e3b\u529e \uff1b 2020 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2020 \u4e0a \u4e3b\u529e \uff1b 2019 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 CVPR 2019 \u4e0a \u4e3b\u529e \u3002","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218\u8d5b"},{"location":"leaderboard_challenge/#carla","text":"","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218\u8d5b"},{"location":"leaderboard_challenge/#2023-carla","text":"","title":"2023 \u5e74 Carla \u6311\u6218\u8d5b"},{"location":"leaderboard_challenge/#_1","text":"\u6b22\u8fce \u53c2\u52a0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u3002 \u672c\u6b21 \u7ade\u8d5b \u5411 \u5b66\u672f \u5b66\u672f\u754c \u548c \u5de5\u4e1a \u4e1a\u754c \u5de5\u4e1a\u754c \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5f00\u653e \u3002 \u60a8 \u53ea \u9700 \u5728 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e0a \u6ce8\u518c \uff0c \u5e76 \u63d0\u4f9b \u60a8 \u7684 \u56e2\u961f \u540d\u79f0 \u548c \u6240\u5728 \u673a\u6784 \u5373\u53ef \u3002 \u8be5 \u6311\u6218 \u5229\u7528 \u73b0\u6709 \u7684 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5e73\u53f0 \u6765 \u8bc4\u4f30 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \u3002 \u6311\u6218 \u7684 \u4e3b\u8981 \u76ee\u6807 \u4ecd\u7136 \u662f \u8bc4\u4f30 \u81ea\u52a8 \u4ee3\u7406 \u5728 \u73b0\u5b9e \u4ea4\u901a \u60c5\u51b5 \u4e0b \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \uff0c \u5982 \u6392\u884c \u6392\u884c\u699c \u673a\u5236 \u4e2d \u6240 \u5b9a\u4e49 \u3002 \u53c2\u8d5b \u53c2\u8d5b\u961f \u5fc5\u987b \u5728 2 \u79cd \u5929\u6c14 \u6761\u4ef6 \u4e0b \u5b8c\u6210 10 \u6761 \u8def\u7ebf \uff0c \u91cd\u590d 5 \u6b21 \u3002 \u8be5 \u6311\u6218 \u9075\u5faa \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5b9a\u4e49 \u7684 \u76f8\u540c \u7ed3\u6784 \u548c \u89c4\u5219 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u53ef \u7528\u4e8e \u6311\u6218 \u7684 \u89c4\u8303 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u52a0 \u4e24\u4e2a \u53ef\u7528 \u8d5b\u9053 \u4e2d \u7684 \u4efb\u4f55 \u4e00\u4e2a \uff1a SENSORS \u548c MAP \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u5f97 \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u7684 \u4efb\u4f55 \u7279\u6743 \u4fe1\u606f \uff0c \u5305\u62ec \u89c4\u5212 \u5668 \u6216 \u4efb\u4f55 \u7c7b\u578b \u7684 \u57fa\u672c \u4e8b\u5b9e \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u529f\u80fd \u7684 \u63d0\u4ea4 \u5c06 \u88ab \u62d2\u7edd \uff0c \u56e2\u961f \u5c06 \u88ab \u7981\u6b62 \u8fdb\u5165 \u8be5 \u5e73\u53f0 \u3002","title":"\u6982\u8ff0"},{"location":"leaderboard_challenge/#_2","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u7684 \u673a\u5236 \u4e0e Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5b9a\u4e49 \u7684 \u673a\u5236 \u76f8\u540c \u3002 \u800c\u8a00 \u7b80\u800c\u8a00\u4e4b \uff1a \u901a\u8fc7 \u9605\u8bfb \u6392\u884c \u6392\u884c\u699c \u4ecb\u7ecd \u6765 \u719f\u6089 \u4efb\u52a1 \u3002 \u901a\u8fc7 \u9605\u8bfb \u5165\u95e8 \u6307\u5357 \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u65b0 \u4ee3\u7406 \u3002 \u62a5\u540d \u53c2\u52a0 \u6311\u6218 \u3002 \u4e86\u89e3 \u5982\u4f55 \u6210\u529f \u63d0\u4ea4 \u3002 \u63d0\u4ea4 \u60a8 \u7684 \u4ee3\u7406 \u3002 \u5728 \u6311\u6218 \u7ed3\u675f \u65e5\u671f \u4e4b\u524d \u516c\u5f00 \u60a8 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u65f6\u95f4 \u65f6\u95f4\u8868 \uff09 \u3002 \u7b14\u8bb0 \u5728 \u6311\u6218 \u6311\u6218\u8d5b \u5f00\u59cb \u548c \u7ed3\u675f \u65e5\u671f \u5185\u5728 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e0a \u516c\u5f00 \u7684 \u6240\u6709 \u63d0\u4ea4 \u5185\u5bb9 \u90fd \u5c06 \u88ab \u8003\u8651 \u53c2\u52a0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u3002 \u6bcf\u4e2a \u8d5b\u9053 \u7684 \u524d 1 \u540d \u63d0\u4ea4 \u4f5c\u54c1 \u5c06 \u88ab \u9080\u8bf7 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u7814\u8ba8 \u7814\u8ba8\u4f1a \u4e0a \u5c55\u793a \u4ed6\u4eec \u7684 \u6210\u679c \u3002 \u6b64\u5916 \uff0c \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u88ab \u9080\u8bf7 \u63d0\u4ea4 \u4e00\u4efd \u63cf\u8ff0 \u5176 \u63d0\u4ea4 \u5185\u5bb9 \u7684 \u6280\u672f \u62a5\u544a \uff08 \u6700 \u591a 4 \u9875 \uff09 \u4ee5\u53ca \u63cf\u8ff0 \u5176 \u65b9\u6cd5 \u7684 \u89c6\u9891 \u3002 \u6839\u636e \u8fd9\u4e9b \u6280\u672f \u62a5\u544a \u7684 \u65b0\u9896 \u65b0\u9896\u6027 \u548c \u539f\u521b \u539f\u521b\u6027 \uff0c \u7ec4\u7ec7 \u5c06 \u9009\u62e9 \u6700 \u591a \u4e24\u4e2a \u56e2\u961f \u5728 \u7814\u8ba8 \u7814\u8ba8\u4f1a \u4e0a \u5c55\u793a \u4ed6\u4eec \u7684 \u5de5\u4f5c \u3002","title":"\u6311\u6218 \u7684 \u673a\u5236"},{"location":"leaderboard_challenge/#carla_1","text":"\u5982\u9700 \u4e86\u89e3 \u6709\u5173 \u4e4b\u524d \u6311\u6218 \u53ca\u5176 \u7ed3\u679c \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 2022 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2022 \u4e0a \u4e3b\u529e \uff1b 2021 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2021 \u4e0a \u4e3b\u529e \uff1b 2020 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2020 \u4e0a \u4e3b\u529e \uff1b 2019 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 CVPR 2019 \u4e0a \u4e3b\u529e \u3002","title":"\u4ee5\u524d \u7684 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218"},{"location":"leaderboard_get_started/","text":"\u5f00\u59cb \u4f7f\u7528 \u6392\u884c \u6392\u884c\u699c 2.0 \u7b14\u8bb0 \u672c\u9875 \u4fe1\u606f \u6d89\u53ca \u6700\u65b0 \u7248\u672c Leaderboard 2.0 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u4ee5\u524d \u7248\u672c \u7684 \u6392\u884c \u6392\u884c\u699c \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6392\u884c \u6392\u884c\u699c 1.0 \u5165\u95e8 \u8bf4\u660e \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5f00\u53d1 \u60a8 \u7684 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u60a8 \u9700\u8981 \u5b8c\u6210 \u4ee5\u4e0b \u8fc7\u7a0b \uff1a \u7cfb\u7edf \u8bbe\u7f6e \u4e0b\u8f7d CARLA \u6392\u884c \u6392\u884c\u699c \u5305 \u4e0b\u8f7d \u6253\u5305 \u7684 Carla \u6392\u884c \u6392\u884c\u699c \u7248\u672c \u3002 \u5c06 \u5305 \u89e3\u538b \u5230 \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4f8b\u5982 Carla \u3002 \u7b14\u8bb0 \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u66f4\u6539 $ { CARLA _ ROOT } \u53d8\u91cf \u4ee5 \u5bf9\u5e94 \u4e8e \u60a8 \u7684 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4e3a\u4e86 \u4f7f\u7528 Carla Python API \uff0c \u60a8 \u9700\u8981 \u5728 \u60a8 \u559c\u6b22 \u7684 \u73af\u5883 \u4e2d \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u3002 \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5bf9\u4e8e conda \uff0c \u9996\u5148 \u521b\u5efa \u4e00\u4e2a \u65b0 \u73af\u5883 \uff1a conda create - n py37 python = 3.7 conda activate py37 cd $ { CARLA _ ROOT } # \u6539\u53d8 \u60a8 \u7684 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 $ { CARLA _ ROOT } pip3 install - r PythonAPI / carla / requirements . txt \u7b14\u8bb0 Carla \u6392\u884c \u6392\u884c\u699c \u7248\u672c \u57fa\u4e8e 0.9 . 14 \u7248\u672c \u3002 \u5b83 \u8fd8 \u5177\u6709 \u5373\u5c06 \u53d1\u5e03 \u7684 0.9 . 14 \u7248\u672c \u7684 \u4e00\u4e9b \u529f\u80fd \uff0c \u4f8b\u5982 \u65b0 \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u56e0\u6b64 \uff0c \u5728 \u4f7f\u7528 API \u65f6\u8bf7 \u53c2\u8003 \u6700\u65b0 \u7684 \u6587\u6863 \u3002 \u83b7\u53d6 \u6392\u884c \u6392\u884c\u699c \u548c \u573a\u666f \u8dd1\u8005 \u4e0b\u8f7d \u6392\u884c \u6392\u884c\u699c \u5b58\u50a8 \u5e93 Leaderboard - 2.0 \u5206\u652f \u3002 git clone - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / leaderboard . git \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u66f4\u6539 $ { LEADERBOARD _ ROOT } \u53d8\u91cf \u4ee5 \u5bf9\u5e94 \u4e8e \u60a8 \u7684 \u6392\u884c \u6392\u884c\u699c \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5b89\u88c5 \u6240 \u9700 \u7684 Python \u4f9d\u8d56 \u9879 \u3002 cd $ { LEADERBOARD _ ROOT } # \u6539\u53d8 \u60a8 \u7684 \u6392\u884c \u6392\u884c\u699c \u76ee\u5f55 \u6839\u76ee\u5f55 $ { LEADERBOARD _ ROOT } pip3 install - r requirements . txt \u4e0b\u8f7d Scenario Runner \u5b58\u50a8 \u5e93 \u6392\u884c \u6392\u884c\u699c - 2.0 \u5206\u652f \u3002 git clone - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / scenario _ runner . git \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u5c06 \u66f4 \u6539\u4e3a $ { SCENARIO _ RUNNER _ ROOT } \u4e0e \u60a8 \u7684 Scenario _ Runner \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u76f8\u5bf9 \u5e94 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 Python \u73af\u5883 \u5b89\u88c5 \u6240 \u9700 \u7684 Python \u4f9d\u8d56 \u9879 \u3002 cd $ { SCENARIO _ RUNNER _ ROOT } # \u6539\u53d8 \u60a8 \u7684 Scenario _ Runner \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 $ { SCENARIO _ RUNNER _ ROOT } pip3 install - r requirements . txt \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \u9996\u5148 \uff0c \u4e0b\u8f7d \u5e76 \u5b89\u88c5 \u9002\u5f53 \u7684 ROS \u6216 ROS2 \u53d1\u884c \u53d1\u884c\u7248 \u3002 Leaderboard 2.0 \u652f\u6301 ROS Melodic \u3001 ROS Noetic \u548c ROS2 Foxy \u3002 \u7136\u540e \uff0c \u514b\u9686 \u5e76 \u6784\u5efa ROS \u6216 ROS2 \u7684 Carla ROS \u6865 \u5b58\u50a8 \u5e93 \u3002 \u786e\u4fdd leaderboard - 2.0 \u5728 \u514b\u9686 Carla ROS Bridge \u5b58\u50a8 \u5e93\u65f6 \u6307\u5b9a \u5206\u652f \uff1a git clone -- recurse - submodules - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / ros - bridge \u5b9a\u4e49 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6211\u4eec \u9700\u8981 \u786e\u4fdd \u4e0d\u540c \u7684 \u6a21\u5757 \u53ef\u4ee5 \u627e\u5230 \u5f7c\u6b64 \u3002 ~ / . bashrc \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u6253\u5f00 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \uff1a gedit ~ / . bashrc \u7f16\u8f91 \u60a8 \u7684 ~ / . bashrc \u4e2a\u4eba \u8d44\u6599 \u4e2a\u4eba\u8d44\u6599 \uff0c \u6dfb\u52a0 \u4ee5\u4e0b \u5b9a\u4e49 \u3002 \u7f16\u8f91 \u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u6587\u4ef6 \u3002 export CARLA _ ROOT = PATH _ TO _ CARLA _ ROOT export SCENARIO _ RUNNER _ ROOT = PATH _ TO _ SCENARIO _ RUNNER export LEADERBOARD _ ROOT = PATH _ TO _ LEADERBOARD export PYTHONPATH = \" $ { CARLA _ ROOT } / PythonAPI / carla / \" : \" $ { SCENARIO _ RUNNER _ ROOT } \" : \" $ { LEADERBOARD _ ROOT } \" : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - 0.9 . 14 - py3.7 - linux - x86 _ 64 . egg \" : $ { PYTHONPATH } \u8bf7 \u8bb0\u4f4f . bashrc \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f \u8fd9\u4e9b \u66f4\u6539 \u751f\u6548 \uff1a source ~ / . bashrc \u521b\u5efa \u5e26\u6709 \u6392\u884c \u6392\u884c\u699c \u7684 \u81ea\u6cbb \u4ee3\u7406 \u6392\u884c \u6392\u884c\u699c \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6392\u884c \u6392\u884c\u699c \u5c06 \u8d1f\u8d23 \u8fd0\u884c \u60a8 \u7684 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u5e76 \u8bc4\u4f30 \u5176 \u5728 \u591a\u6761 \u8def\u7ebf \u7684 \u4e0d\u540c \u4ea4\u901a \u60c5\u51b5 \u4e0b \u7684 \u884c\u4e3a \u3002 \u4e3a\u4e86 \u66f4\u597d \u5730 \u7406\u89e3 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u8ba9 \u6211\u4eec \u8fd0\u884c \u4e00\u4e2a \u57fa\u672c \u4ee3\u7406 \u3002 \u5728 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 cd $ { CARLA _ ROOT } . / CarlaUE4 . sh - quality - level = Epic - world - port = 2000 - resx = 800 - resy = 600 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 $ { LEADERBOARD _ ROOT } . \u867d\u7136 \u6392\u884c \u6392\u884c\u699c \u662f \u4f7f\u7528 leaderboard _ evaluator . py python \u811a\u672c \u8fd0\u884c \u7684 \uff0c \u4f46 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6570\u91cf \u53ef\u80fd \u4f1a \u8ba9 \u4f7f\u7528 \u7ec8\u7aef \u76f4\u63a5 \u6267\u884c \u6b64 \u64cd\u4f5c \u611f\u5230 \u975e\u5e38 \u4e0d \u8212\u670d \u3002 \u56e0\u6b64 \uff0c \u5efa\u8bae \u4f7f\u7528 bash \u811a\u672c \u3002 \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u7684 run _ leaderboard . sh \u811a\u672c \u6b63\u662f \u8fd9\u6837 \u505a \u7684 \u3002 \u8fd0\u884c \u811a\u672c \uff1a . / run _ leaderboard . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u8ba9 \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u63a7\u5236 \u4ee3\u7406 \u3002 \u6309\u7167 \u5f69\u8272 \u8def\u5f84 \u70b9 \u6307\u793a \u7684 \u8def\u7ebf \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u8be5 \u811a\u672c \u52a0\u8f7d Town 12 \u4e2d \u7684 \u4e24\u6761 \u8def\u7ebf \u4e24\u6761\u8def \u4e24\u6761\u8def\u7ebf \u3002 \u9075\u5faa \u8def\u7ebf \u5e76 \u9075\u5b88 \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \uff0c \u76f4\u5230 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u7b14\u8bb0 \u624b\u52a8 \u4e2d\u65ad \u6392\u884c \u6392\u884c\u699c \u5c06 \u62a2\u5148 \u505c\u6b62 \u8def\u7ebf \u4eff\u771f \uff0c \u81ea\u52a8 \u8fdb\u5165 \u4e0b \u4e00\u6761 \u8def\u7ebf \u3002 \u4e86\u89e3 \u6392\u884c \u6392\u884c\u699c \u7ec4\u4ef6 \u8fd0\u884c \u6d4b\u8bd5 \u65f6 \uff0c \u6211\u4eec \u8bbe\u7f6e \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53c2\u6570 \u3002 \u8ba9 \u6211\u4eec \u4e86\u89e3 \u4e00\u4e0b \u5b83\u4eec \u4ee5\u53ca \u5b83\u4eec \u5728 \u6392\u884c \u6392\u884c\u699c \u4e2d \u7684 \u4f5c\u7528 \u3002 ROUTES ( XML ) \u2014 \u5c06 \u7528\u4e8e \u4eff\u771f \u7684 \u8def\u7ebf \u96c6 \u3002 \u6bcf\u6761 \u8def\u7ebf \u90fd \u6709 \u4e00\u4e2a \u8d77\u70b9 \uff08 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8def\u5f84 \u70b9 \uff09 \u548c \u4e00\u4e2a \u7ec8\u70b9 \uff08 \u6700\u540e \u4e00\u4e2a \u8def\u5f84 \u70b9 \uff09 \u3002 \u6b64\u5916 \uff0c \u5b83\u4eec \u8fd8 \u53ef\u4ee5 \u5305\u542b \u5929\u6c14 \u6982\u51b5 \u6765 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 \u4e00\u4efd XML \u5305\u542b \u8bb8\u591a \u8def\u7531 \uff0c \u6bcf\u6761 \u8def\u7531 \u90fd \u6709 \u4e00\u4e2a ID \u3002 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u3001 \u6dfb\u52a0 \u548c \u5220\u9664 \u8def\u7ebf \u4ee5 \u8fdb\u884c \u57f9\u8bad \u548c \u9a8c\u8bc1 \u3002 \u6392\u884c \u6392\u884c\u699c \u9644\u5e26 \u4e86 \u4e00\u7ec4 \u7528\u4e8e \u8c03\u8bd5 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u7684 \u8def\u7ebf \u3002 \u7528\u4e8e \u5728\u7ebf \u8bc4\u4f30 \u7684 \u8def\u7ebf \u662f \u79d8\u5bc6 \u7684 \u3002 \u8be5 \u6587\u4ef6 \u8fd8 \u5305\u62ec \u5c06 \u5728 \u4eff\u771f \u4e2d \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u6bcf\u6761 \u8def\u7ebf \u90fd \u6709 \u81ea\u5df1 \u7684 \u4e00\u7ec4 \u573a\u666f \u3002 \u573a\u666f \u88ab \u5b9a\u4e49 \u4e3a \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7279\u5de5 \u5fc5\u987b \u514b\u670d \u8fd9\u4e9b \u573a\u666f \u624d\u80fd \u901a\u8fc7 \u6d4b\u8bd5 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u8bbf\u95ee \u4e00\u7ec4 \u9002\u7528 \u4e8e \u516c\u5171 \u57ce\u9547 \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u5b58\u5728 \u4f7f\u7528 \u4e0d\u540c \u53c2\u6570 \u5b9e\u4f8b \u5316 \u7684 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u573a\u666f \u3002 \u4ee5\u4e0b \u662f \u53ef\u7528 \u65b9\u6848 \u7684 \u5217\u8868 \u3002 REPETITIONS ( int ) \u2014 \u51fa\u4e8e \u7edf\u8ba1 \u76ee\u7684 \uff0c \u6bcf\u6761 \u8def\u7ebf \u91cd\u590d \u7684 \u6b21\u6570 \u3002 TEAM _ AGENT ( Python \u6a21\u5757 ) \u2014 \u4ee3\u7406 \u7684 Python \u6a21\u5757 \u7684 \u8def\u5f84 \u3002 \u521b\u5efa \u4ee3\u7406 \u7684 \u6b65\u9aa4 \u5c06 \u5728 \u4e0b \u4e00\u6b65 \u4e2d \u89e3\u91ca \u3002 \u5176\u4ed6 \u76f8\u5173 \u53c2\u6570 \u5982\u4e0b \u6240\u8ff0 \u3002 TEAM _ CONFIG \uff08 \u7531 \u7528\u6237 \u5b9a\u4e49 \uff09 \u2014 \u6240 \u63d0\u4f9b \u7684 \u4ee3\u7406 \u8bfb\u53d6 \u7684 \u4efb\u610f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u60a8 \u8d1f\u8d23 \u5728 \u4ee3\u7406 \u7c7b\u4e2d \u5b9a\u4e49 \u548c \u89e3\u6790 \u6b64 \u6587\u4ef6 \u3002 DEBUG _ CHALLENGE ( int ) \u2014 \u6307\u793a \u4eff\u771f \u671f\u95f4 \u662f\u5426 \u5e94 \u663e\u793a \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u7684 \u6807\u5fd7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5 \u53d8\u91cf \u672a \u8bbe\u7f6e ( 0 ) \uff0c \u8fd9 \u4e0d\u4f1a \u751f\u6210 \u8981 \u663e\u793a \u7684 \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 1 \u65f6 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u663e\u793a \u8981 \u9075\u5faa \u7684 \u53c2\u8003 \u8def\u7ebf \u3002 \u5982\u679c \u6b64 \u53d8\u91cf \u8bbe\u7f6e \u4e3a \u5927\u4e8e \u4efb\u4f55 \u503c \uff0c 1 \u5f15\u64ce \u5c06 \u6253\u5370 \u4eff\u771f \u7684 \u5b8c\u6574 \u72b6\u6001 \u4ee5 \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 CHECKPOINT _ ENDPOINT ( JSON ) \u2014 \u5c06 \u8bb0\u5f55 Leaderboard \u6307\u6807 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 RECORD _ PATH \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u2014 \u5c06 \u5b58\u50a8 Carla \u65e5\u5fd7 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b\u672a \u8bbe\u7f6e \u3002 RESUME \u2014 \u6307\u793a \u4eff\u771f \u662f\u5426 \u5e94\u4ece \u6700\u540e \u4e00\u6761 \u8def\u7ebf \u6062\u590d \u7684 \u6807\u5fd7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b\u672a \u8bbe\u7f6e \u3002 CHALLENGE _ TRACK _ CODENAME \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u2014 \u4ee3\u7406 \u6b63\u5728 \u7ade\u4e89 \u7684 \u8d5b\u9053 \u3002 \u6709 \u4e24\u4e2a \u53ef\u80fd \u7684 \u9009\u9879 \uff1a SENSORS \u548c MAP \u3002 \u8be5 SENSORS \u8d5b\u9053 \u5141\u8bb8 \u4f7f\u7528 \u591a\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u548c \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u3002 \u9664\u4e86 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e4b\u5916 \uff0c MAP \u8d5b\u9053 \u8fd8 \u5141\u8bb8 \u76f4\u63a5 \u8bbf\u95ee OpenDRIVE \u9ad8\u6e05 \u5730\u56fe \u3002 \u60a8 \u8d1f\u8d23 \u6839\u636e \u9700\u8981 \u89e3\u6790 \u548c \u5904\u7406 OpenDRIVE \u6620\u5c04 \u3002 \u8fd9\u4e9b \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u88ab \u4f20\u9012 \u5230 $ { LEADERBOARD _ ROOT } / LEADERBOARD / LEADERBOARD _ evaluator . py \uff0c \u4f5c\u4e3a \u6267\u884c \u4eff\u771f \u7684 \u5165\u53e3 \u70b9 \u3002 \u67e5\u770b leaderboard _ evaluator . py \uff0c \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u6267\u884c \u548c \u8bc4\u4f30 \u4ee3\u7406 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u521b\u5efa \u81ea\u5df1 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u65b0 \u4ee3\u7406 \u7684 \u5b9a\u4e49 \u59cb\u4e8e \u521b\u5efa \u4e00\u4e2a \u65b0\u7c7b \uff0c \u8be5\u7c7b \u7ee7\u627f \u81ea leaderboard . autoagents . autonomous _ agent . AutonomousAgent \u3002 \u521b\u5efa get _ entry _ point \u9996\u5148 \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u540d\u4e3a get _ entry _ point \u7684 \u51fd\u6570 \uff0c \u8be5 \u51fd\u6570 \u8fd4\u56de \u65b0\u7c7b \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u81ea\u52a8 \u5b9e\u4f8b \u5316 \u60a8 \u7684 \u4ee3\u7406 \u3002 from leaderboard . autoagents . autonomous _ agent import AutonomousAgent def get _ entry _ point ( ) : return ' MyAgent ' class MyAgent ( AutonomousAgent ) : ... \u91cd\u5199 setup \u65b9\u6cd5 \u5728 \u4ee3\u7406 \u7c7b\u4e2d \u91cd\u5199 setup \u65b9\u6cd5 \u3002 \u6b64 \u65b9\u6cd5 \u6267\u884c \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u521d\u59cb \u521d\u59cb\u5316 \u548c \u5b9a\u4e49 \u3002 \u6bcf\u6b21 \u521d\u59cb \u521d\u59cb\u5316 \u8def\u7531 \u65f6 \uff0c \u90fd \u4f1a \u81ea\u52a8 \u8c03\u7528 \u5b83 \u3002 \u5b83 \u53ef\u4ee5 \u63a5\u6536 \u6307\u5411 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u53ef\u9009 \u53c2\u6570 \u3002 \u7528\u6237 \u5e94 \u5206\u6790 \u6b64 \u6587\u4ef6 \u3002 \u81f3\u5c11 \uff0c \u60a8 \u9700\u8981 \u6307\u5b9a \u53c2\u4e0e \u7684 \u66f2\u76ee \u3002 from leaderboard . autoagents . autonomous _ agent import Track ... def setup ( self , path _ to _ conf _ file ) : self . track = Track . SENSORS # \u6b64 \u65b9\u6cd5 \u81f3\u5c11 \u8bbe\u7f6e \u6392\u884c \u6392\u884c\u699c \u6a21\u5f0f \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b SENSORS \u6ce8\u610f self . track \u5c5e\u6027 \u5e94\u8be5 \u662f \u679a\u4e3e \uff0c \u800c \u4e0d\u662f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u5b83 \u53ea\u80fd \u53d6 \u53ef\u80fd \u7684 \u503c Track . SENSORS \u6216 Track . MAP \u3002 \u91cd\u5199 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \u60a8 \u8fd8 \u5fc5\u987b \u8986\u76d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \uff0c \u8be5 \u65b9\u6cd5 \u5b9a\u4e49 \u4e86 \u60a8 \u7684 \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 def sensors ( self ) : sensors = [ { ' type ' : ' sensor . camera . rgb ' , ' id ' : ' Center ' , ' x ' : 0.7 , ' y ' : 0.0 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 0.0 , ' width ' : 300 , ' height ' : 200 , ' fov ' : 100 } , { ' type ' : ' sensor . lidar . ray _ cast ' , ' id ' : ' LIDAR ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 } , { ' type ' : ' sensor . other . radar ' , ' id ' : ' RADAR ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' fov ' : 30 } , { ' type ' : ' sensor . other . gnss ' , ' id ' : ' GPS ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 } , { ' type ' : ' sensor . other . imu ' , ' id ' : ' IMU ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 } , { ' type ' : ' sensor . opendrive _ map ' , ' id ' : ' OpenDRIVE ' , ' reading _ frequency ' : 1 } , { ' type ' : ' sensor . speedometer ' , ' id ' : ' Speed ' } , ] return sensors \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u90fd \u5177\u6709 \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u5728 agent _ wrapper . py \u4e2d \u8fdb\u884c \u68c0\u67e5 \u3002 \u8fd9\u6837 \u505a \u53ef\u4ee5 \u4f7f \u6240\u6709 \u56e2\u961f \u5728 \u4e00\u4e2a \u901a\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6846\u67b6 \u5185 \u8fdb\u884c \u7ade\u4e89 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u8868\u793a \u4e3a \u5b57\u5178 \uff0c \u5305\u542b \u4ee5\u4e0b \u5c5e\u6027 \uff1a type : \u8981 \u6dfb\u52a0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 id : \u5c06 \u88ab \u7ed9\u4e88 \u7a0d\u540e \u8981 \u8bbf\u95ee \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6807\u7b7e \u3002 other attributes : \u8fd9\u4e9b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u7684 \uff0c \u4f8b\u5982 \uff1a \u5916\u53c2 \u548c fov \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u76f8\u5bf9 \u5750\u6807 \u4e2d \u8bbe\u7f6e \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5185\u90e8 \u548c \u5916\u90e8 \u53c2\u6570 \uff08 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff09 \u3002 \u8bf7 \u6ce8\u610f \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff0c \u5373 \uff1a x - front \uff0c y - right \uff0c z - up \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \uff1a sensor . camera . rgb : \u6355\u6349 \u56fe\u50cf \u7684 \u666e\u901a \u76f8\u673a \u3002 sensor . lidar . ray _ cast : Velodyne 64 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 sensor . other . radar : \u8fdc\u7a0b \u96f7\u8fbe \uff08 \u9ad8\u8fbe 100 \u7c73 \uff09 \u3002 sensor . other . gnss : GPS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u6570\u636e \u3002 sensor . other . imu : 6 \u8f74 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u3002 sensor . opendrive _ map : \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u683c\u5f0f \u516c\u5f00 HD \u6620\u5c04 \u3002 sensor . speedometer : \u63d0\u4f9b \u8fd1\u4f3c \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u7684 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6ce8\u610f \u8bd5\u56fe \u8bbe\u7f6e \u53e6 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u62fc\u9519 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5bfc\u81f4 \u8bbe\u7f6e \u5931\u8d25 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u4efb\u4f55 \u4e00\u4e2a \u6765 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5806\u6808 \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u4fdd\u6301 \u9002\u5ea6 \u7684 \u8ba1\u7b97 \u8d1f\u8f7d \uff0c \u6211\u4eec \u5bf9 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 \u4ee3\u7406 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u91cf \u8bbe\u7f6e \u4e86 \u4ee5\u4e0b \u9650\u5236 \uff1a sensor . camera . rgb : 4 sensor . lidar . ray _ cast : 1 sensor . other . radar : 2 sensor . other . gnss : 1 sensor . other . imu : 1 sensor . opendrive _ map : 1 sensor . speedometer : 1 \u6ce8\u610f \u8bd5\u56fe \u8bbe\u7f6e \u8fc7\u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5355\u5143 \u4f1a \u5bfc\u81f4 \u8bbe\u7f6e \u5931\u8d25 \u3002 \u8fd8\u6709 \u4e00\u4e9b \u7a7a\u95f4 \u9650\u5236 \u9650\u5236 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u8f66\u8f86 \u4f53\u79ef \u5185 \u7684 \u653e\u7f6e \u3002 \u5982\u679c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4efb\u4f55 \u8f74 \uff08 \u4f8b\u5982 [ 3.1 , 0.0 , 0.0 ] \uff09 \u4e0a \u8ddd\u79bb \u5176\u7236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8d85\u8fc7 3 \u7c73 \uff0c \u5219 \u8bbe\u7f6e \u5c06 \u5931\u8d25 \u3002 \u91cd\u5199 run _ step \u65b9\u6cd5 \u6b64 \u65b9\u6cd5 \u5c06 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u8c03\u7528 \u4e00\u6b21 \uff0c \u4ee5 \u751f\u6210 carla . VehicleControl \u5bf9\u8c61 \u5f62\u5f0f \u7684 \u65b0 \u52a8\u4f5c \u3002 \u786e\u4fdd \u6b64 \u51fd\u6570 \u8fd4\u56de \u5c06 \u7528\u4e8e \u66f4\u65b0 \u4ee3\u7406 \u7684 \u63a7\u5236 \u5bf9\u8c61 \u3002 def run _ step ( self , input _ data , timestamp ) : control = self ._ do _ something _ smart ( input _ data , timestamp ) return control input _ data : \u5305\u542b \u6240 \u8bf7\u6c42 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u7684 \u5b57\u5178 \u3002 \u6570\u636e \u5df2\u7ecf \u5728 sensor _ interface . py \u4e0a \u8fdb\u884c \u4e86 \u5904\u7406 \u9884\u5904\u7406 \uff0c \u5e76 \u5c06 \u4ee5 numpy \u6570\u7ec4 \u7684 \u5f62\u5f0f \u7ed9\u51fa \u3002 \u8be5 \u5b57\u5178 \u7531 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \u4e2d \u5b9a\u4e49 \u7684 id \u7d22\u5f15 \u3002 timestamp : \u5f53\u524d \u4eff\u771f \u77ac\u95f4 \u7684 \u65f6\u95f4 \u6233 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u81ea\u6211 \u4ee3\u7406 \u4e3a \u8fbe\u5230 \u76ee\u7684 \u76ee\u7684\u5730 \u800c\u5e94 \u8d70 \u7684 \u8def\u7ebf \u3002 \u5229\u7528 self ._ global _ plan \u6210\u5458 \u8bbf\u95ee \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u8def\u7531 \u548c self ._ global _ plan _ world _ coord \u4f5c\u4e3a \u5176 \u4e16\u754c \u4f4d\u7f6e \u5bf9\u5e94 \u9879 \u3002 \u91cd\u5199 destroy \u65b9\u6cd5 \u5728 \u6bcf\u6761 \u8def\u7531 \u7ed3\u675f \u65f6 \uff0c \u5c06 \u8c03\u7528 destroy \u65b9\u6cd5 \uff0c \u5728 \u9700\u8981 \u6e05\u7406 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8986\u76d6 \u8be5 \u65b9\u6cd5 \u3002 \u4f8b\u5982 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u529f\u80fd \u64e6\u9664 \u7f51\u7edc \u4e2d \u4efb\u4f55 \u4e0d \u9700\u8981 \u7684 \u5185\u5b58 def destroy ( self ) : pass \u57fa\u4e8e \u4ee3\u7406 \u7684 ROS \u5982\u679c \u60a8 \u60f3 \u5c06 ROS \u4f5c\u4e3a \u4ee3\u7406 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u4ee5\u4e0b \u662f \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u5efa\u8bae \uff1a ROS Melodic : \u7531\u4e8e \u6392\u884c \u6392\u884c\u699c \u4ec5 \u4e0e Python 3 \u517c\u5bb9 \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 roslibpy \u5728 \u6392\u884c \u6392\u884c\u699c \u548c ROS \u5806\u6808 \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 ROS Noetic : \u7531\u4e8e ROS Noetic \u7684 \u76ee\u6807 \u662f Python3 \uff0c \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 rospy \u521b\u5efa \u4e00\u4e2a \u8282\u70b9 \u6765 \u4e0e \u60a8 \u7684 ROS \u5806\u6808 \u901a\u4fe1 \u6392\u884c \u6392\u884c\u699c \u3002 ROS2 Foxy : \u4e0e ROS Noetic \u7c7b\u4f3c \uff0c \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 rcpy \u4e0e \u60a8 \u7684 \u5806\u6808 \u5efa\u7acb \u901a\u4fe1 \u3002 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4ee3\u7406 \u6211\u4eec \u51c6\u5907 \u4e86 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u8def\u7ebf \u4f5c\u4e3a \u8d77\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u9014\u5f84 \u6765 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u4ee3\u7406 \u7684 \u6027\u80fd \u3002 \u53ef\u4ee5 \u5728 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 { LEADERBOARD _ ROOT } / data : routes _ training . xml : \u62df \u7528\u4f5c \u8bad\u7ec3 \u6570\u636e \u7684 50 \u6761 \u8def\u7ebf \uff08 112.8 \u516c\u91cc \uff09 \u3002 routes _ testing . xml : \u62df \u7528\u4f5c \u9a8c\u8bc1 \u6570\u636e \u7684 26 \u6761 \u8def\u7ebf \uff08 58.9 \u516c\u91cc \uff09 \u3002 \u57fa\u51c6 Brady Zhou \u5728 Learning by Cheating \u7684 \u57fa\u7840 \u4e0a \u521b\u9020 \u4e86 \u4e00\u5957 \u51fa\u8272 \u7684 starter kit \u3002","title":"\u5f00\u59cb \u4f7f\u7528 \u6392\u884c\u699c 2.0"},{"location":"leaderboard_get_started/#20","text":"\u7b14\u8bb0 \u672c\u9875 \u4fe1\u606f \u6d89\u53ca \u6700\u65b0 \u7248\u672c Leaderboard 2.0 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u4ee5\u524d \u7248\u672c \u7684 \u6392\u884c \u6392\u884c\u699c \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6392\u884c \u6392\u884c\u699c 1.0 \u5165\u95e8 \u8bf4\u660e \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5f00\u53d1 \u60a8 \u7684 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u60a8 \u9700\u8981 \u5b8c\u6210 \u4ee5\u4e0b \u8fc7\u7a0b \uff1a","title":"\u5f00\u59cb \u4f7f\u7528 \u6392\u884c\u699c 2.0"},{"location":"leaderboard_get_started/#_1","text":"","title":"\u7cfb\u7edf \u8bbe\u7f6e"},{"location":"leaderboard_get_started/#carla","text":"\u4e0b\u8f7d \u6253\u5305 \u7684 Carla \u6392\u884c \u6392\u884c\u699c \u7248\u672c \u3002 \u5c06 \u5305 \u89e3\u538b \u5230 \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4f8b\u5982 Carla \u3002 \u7b14\u8bb0 \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u66f4\u6539 $ { CARLA _ ROOT } \u53d8\u91cf \u4ee5 \u5bf9\u5e94 \u4e8e \u60a8 \u7684 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4e3a\u4e86 \u4f7f\u7528 Carla Python API \uff0c \u60a8 \u9700\u8981 \u5728 \u60a8 \u559c\u6b22 \u7684 \u73af\u5883 \u4e2d \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u3002 \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5bf9\u4e8e conda \uff0c \u9996\u5148 \u521b\u5efa \u4e00\u4e2a \u65b0 \u73af\u5883 \uff1a conda create - n py37 python = 3.7 conda activate py37 cd $ { CARLA _ ROOT } # \u6539\u53d8 \u60a8 \u7684 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 $ { CARLA _ ROOT } pip3 install - r PythonAPI / carla / requirements . txt \u7b14\u8bb0 Carla \u6392\u884c \u6392\u884c\u699c \u7248\u672c \u57fa\u4e8e 0.9 . 14 \u7248\u672c \u3002 \u5b83 \u8fd8 \u5177\u6709 \u5373\u5c06 \u53d1\u5e03 \u7684 0.9 . 14 \u7248\u672c \u7684 \u4e00\u4e9b \u529f\u80fd \uff0c \u4f8b\u5982 \u65b0 \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u56e0\u6b64 \uff0c \u5728 \u4f7f\u7528 API \u65f6\u8bf7 \u53c2\u8003 \u6700\u65b0 \u7684 \u6587\u6863 \u3002","title":"\u4e0b\u8f7d CARLA \u6392\u884c\u699c \u5305"},{"location":"leaderboard_get_started/#_2","text":"\u4e0b\u8f7d \u6392\u884c \u6392\u884c\u699c \u5b58\u50a8 \u5e93 Leaderboard - 2.0 \u5206\u652f \u3002 git clone - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / leaderboard . git \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u66f4\u6539 $ { LEADERBOARD _ ROOT } \u53d8\u91cf \u4ee5 \u5bf9\u5e94 \u4e8e \u60a8 \u7684 \u6392\u884c \u6392\u884c\u699c \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5b89\u88c5 \u6240 \u9700 \u7684 Python \u4f9d\u8d56 \u9879 \u3002 cd $ { LEADERBOARD _ ROOT } # \u6539\u53d8 \u60a8 \u7684 \u6392\u884c \u6392\u884c\u699c \u76ee\u5f55 \u6839\u76ee\u5f55 $ { LEADERBOARD _ ROOT } pip3 install - r requirements . txt \u4e0b\u8f7d Scenario Runner \u5b58\u50a8 \u5e93 \u6392\u884c \u6392\u884c\u699c - 2.0 \u5206\u652f \u3002 git clone - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / scenario _ runner . git \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u5c06 \u66f4 \u6539\u4e3a $ { SCENARIO _ RUNNER _ ROOT } \u4e0e \u60a8 \u7684 Scenario _ Runner \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u76f8\u5bf9 \u5e94 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 Python \u73af\u5883 \u5b89\u88c5 \u6240 \u9700 \u7684 Python \u4f9d\u8d56 \u9879 \u3002 cd $ { SCENARIO _ RUNNER _ ROOT } # \u6539\u53d8 \u60a8 \u7684 Scenario _ Runner \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 $ { SCENARIO _ RUNNER _ ROOT } pip3 install - r requirements . txt","title":"\u83b7\u53d6 \u6392\u884c\u699c \u548c \u573a\u666f \u8dd1\u8005"},{"location":"leaderboard_get_started/#ros","text":"\u9996\u5148 \uff0c \u4e0b\u8f7d \u5e76 \u5b89\u88c5 \u9002\u5f53 \u7684 ROS \u6216 ROS2 \u53d1\u884c \u53d1\u884c\u7248 \u3002 Leaderboard 2.0 \u652f\u6301 ROS Melodic \u3001 ROS Noetic \u548c ROS2 Foxy \u3002 \u7136\u540e \uff0c \u514b\u9686 \u5e76 \u6784\u5efa ROS \u6216 ROS2 \u7684 Carla ROS \u6865 \u5b58\u50a8 \u5e93 \u3002 \u786e\u4fdd leaderboard - 2.0 \u5728 \u514b\u9686 Carla ROS Bridge \u5b58\u50a8 \u5e93\u65f6 \u6307\u5b9a \u5206\u652f \uff1a git clone -- recurse - submodules - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / ros - bridge","title":"\u57fa\u4e8e ROS \u7684 \u4ee3\u7406"},{"location":"leaderboard_get_started/#_3","text":"\u6211\u4eec \u9700\u8981 \u786e\u4fdd \u4e0d\u540c \u7684 \u6a21\u5757 \u53ef\u4ee5 \u627e\u5230 \u5f7c\u6b64 \u3002 ~ / . bashrc \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u6253\u5f00 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \uff1a gedit ~ / . bashrc \u7f16\u8f91 \u60a8 \u7684 ~ / . bashrc \u4e2a\u4eba \u8d44\u6599 \u4e2a\u4eba\u8d44\u6599 \uff0c \u6dfb\u52a0 \u4ee5\u4e0b \u5b9a\u4e49 \u3002 \u7f16\u8f91 \u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u6587\u4ef6 \u3002 export CARLA _ ROOT = PATH _ TO _ CARLA _ ROOT export SCENARIO _ RUNNER _ ROOT = PATH _ TO _ SCENARIO _ RUNNER export LEADERBOARD _ ROOT = PATH _ TO _ LEADERBOARD export PYTHONPATH = \" $ { CARLA _ ROOT } / PythonAPI / carla / \" : \" $ { SCENARIO _ RUNNER _ ROOT } \" : \" $ { LEADERBOARD _ ROOT } \" : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - 0.9 . 14 - py3.7 - linux - x86 _ 64 . egg \" : $ { PYTHONPATH } \u8bf7 \u8bb0\u4f4f . bashrc \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f \u8fd9\u4e9b \u66f4\u6539 \u751f\u6548 \uff1a source ~ / . bashrc","title":"\u5b9a\u4e49 \u73af\u5883\u53d8\u91cf"},{"location":"leaderboard_get_started/#_4","text":"","title":"\u521b\u5efa \u5e26\u6709 \u6392\u884c\u699c \u7684 \u81ea\u6cbb \u4ee3\u7406"},{"location":"leaderboard_get_started/#_5","text":"\u6392\u884c \u6392\u884c\u699c \u5c06 \u8d1f\u8d23 \u8fd0\u884c \u60a8 \u7684 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u5e76 \u8bc4\u4f30 \u5176 \u5728 \u591a\u6761 \u8def\u7ebf \u7684 \u4e0d\u540c \u4ea4\u901a \u60c5\u51b5 \u4e0b \u7684 \u884c\u4e3a \u3002 \u4e3a\u4e86 \u66f4\u597d \u5730 \u7406\u89e3 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u8ba9 \u6211\u4eec \u8fd0\u884c \u4e00\u4e2a \u57fa\u672c \u4ee3\u7406 \u3002 \u5728 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 cd $ { CARLA _ ROOT } . / CarlaUE4 . sh - quality - level = Epic - world - port = 2000 - resx = 800 - resy = 600 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 $ { LEADERBOARD _ ROOT } . \u867d\u7136 \u6392\u884c \u6392\u884c\u699c \u662f \u4f7f\u7528 leaderboard _ evaluator . py python \u811a\u672c \u8fd0\u884c \u7684 \uff0c \u4f46 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6570\u91cf \u53ef\u80fd \u4f1a \u8ba9 \u4f7f\u7528 \u7ec8\u7aef \u76f4\u63a5 \u6267\u884c \u6b64 \u64cd\u4f5c \u611f\u5230 \u975e\u5e38 \u4e0d \u8212\u670d \u3002 \u56e0\u6b64 \uff0c \u5efa\u8bae \u4f7f\u7528 bash \u811a\u672c \u3002 \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u7684 run _ leaderboard . sh \u811a\u672c \u6b63\u662f \u8fd9\u6837 \u505a \u7684 \u3002 \u8fd0\u884c \u811a\u672c \uff1a . / run _ leaderboard . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u8ba9 \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u63a7\u5236 \u4ee3\u7406 \u3002 \u6309\u7167 \u5f69\u8272 \u8def\u5f84 \u70b9 \u6307\u793a \u7684 \u8def\u7ebf \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u8be5 \u811a\u672c \u52a0\u8f7d Town 12 \u4e2d \u7684 \u4e24\u6761 \u8def\u7ebf \u4e24\u6761\u8def \u4e24\u6761\u8def\u7ebf \u3002 \u9075\u5faa \u8def\u7ebf \u5e76 \u9075\u5b88 \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \uff0c \u76f4\u5230 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u7b14\u8bb0 \u624b\u52a8 \u4e2d\u65ad \u6392\u884c \u6392\u884c\u699c \u5c06 \u62a2\u5148 \u505c\u6b62 \u8def\u7ebf \u4eff\u771f \uff0c \u81ea\u52a8 \u8fdb\u5165 \u4e0b \u4e00\u6761 \u8def\u7ebf \u3002","title":"\u6392\u884c\u699c \u7684 \u7b2c\u4e00\u6b65"},{"location":"leaderboard_get_started/#_6","text":"\u8fd0\u884c \u6d4b\u8bd5 \u65f6 \uff0c \u6211\u4eec \u8bbe\u7f6e \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53c2\u6570 \u3002 \u8ba9 \u6211\u4eec \u4e86\u89e3 \u4e00\u4e0b \u5b83\u4eec \u4ee5\u53ca \u5b83\u4eec \u5728 \u6392\u884c \u6392\u884c\u699c \u4e2d \u7684 \u4f5c\u7528 \u3002 ROUTES ( XML ) \u2014 \u5c06 \u7528\u4e8e \u4eff\u771f \u7684 \u8def\u7ebf \u96c6 \u3002 \u6bcf\u6761 \u8def\u7ebf \u90fd \u6709 \u4e00\u4e2a \u8d77\u70b9 \uff08 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8def\u5f84 \u70b9 \uff09 \u548c \u4e00\u4e2a \u7ec8\u70b9 \uff08 \u6700\u540e \u4e00\u4e2a \u8def\u5f84 \u70b9 \uff09 \u3002 \u6b64\u5916 \uff0c \u5b83\u4eec \u8fd8 \u53ef\u4ee5 \u5305\u542b \u5929\u6c14 \u6982\u51b5 \u6765 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 \u4e00\u4efd XML \u5305\u542b \u8bb8\u591a \u8def\u7531 \uff0c \u6bcf\u6761 \u8def\u7531 \u90fd \u6709 \u4e00\u4e2a ID \u3002 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u3001 \u6dfb\u52a0 \u548c \u5220\u9664 \u8def\u7ebf \u4ee5 \u8fdb\u884c \u57f9\u8bad \u548c \u9a8c\u8bc1 \u3002 \u6392\u884c \u6392\u884c\u699c \u9644\u5e26 \u4e86 \u4e00\u7ec4 \u7528\u4e8e \u8c03\u8bd5 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u7684 \u8def\u7ebf \u3002 \u7528\u4e8e \u5728\u7ebf \u8bc4\u4f30 \u7684 \u8def\u7ebf \u662f \u79d8\u5bc6 \u7684 \u3002 \u8be5 \u6587\u4ef6 \u8fd8 \u5305\u62ec \u5c06 \u5728 \u4eff\u771f \u4e2d \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u6bcf\u6761 \u8def\u7ebf \u90fd \u6709 \u81ea\u5df1 \u7684 \u4e00\u7ec4 \u573a\u666f \u3002 \u573a\u666f \u88ab \u5b9a\u4e49 \u4e3a \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7279\u5de5 \u5fc5\u987b \u514b\u670d \u8fd9\u4e9b \u573a\u666f \u624d\u80fd \u901a\u8fc7 \u6d4b\u8bd5 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u8bbf\u95ee \u4e00\u7ec4 \u9002\u7528 \u4e8e \u516c\u5171 \u57ce\u9547 \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u5b58\u5728 \u4f7f\u7528 \u4e0d\u540c \u53c2\u6570 \u5b9e\u4f8b \u5316 \u7684 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u573a\u666f \u3002 \u4ee5\u4e0b \u662f \u53ef\u7528 \u65b9\u6848 \u7684 \u5217\u8868 \u3002 REPETITIONS ( int ) \u2014 \u51fa\u4e8e \u7edf\u8ba1 \u76ee\u7684 \uff0c \u6bcf\u6761 \u8def\u7ebf \u91cd\u590d \u7684 \u6b21\u6570 \u3002 TEAM _ AGENT ( Python \u6a21\u5757 ) \u2014 \u4ee3\u7406 \u7684 Python \u6a21\u5757 \u7684 \u8def\u5f84 \u3002 \u521b\u5efa \u4ee3\u7406 \u7684 \u6b65\u9aa4 \u5c06 \u5728 \u4e0b \u4e00\u6b65 \u4e2d \u89e3\u91ca \u3002 \u5176\u4ed6 \u76f8\u5173 \u53c2\u6570 \u5982\u4e0b \u6240\u8ff0 \u3002 TEAM _ CONFIG \uff08 \u7531 \u7528\u6237 \u5b9a\u4e49 \uff09 \u2014 \u6240 \u63d0\u4f9b \u7684 \u4ee3\u7406 \u8bfb\u53d6 \u7684 \u4efb\u610f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u60a8 \u8d1f\u8d23 \u5728 \u4ee3\u7406 \u7c7b\u4e2d \u5b9a\u4e49 \u548c \u89e3\u6790 \u6b64 \u6587\u4ef6 \u3002 DEBUG _ CHALLENGE ( int ) \u2014 \u6307\u793a \u4eff\u771f \u671f\u95f4 \u662f\u5426 \u5e94 \u663e\u793a \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u7684 \u6807\u5fd7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5 \u53d8\u91cf \u672a \u8bbe\u7f6e ( 0 ) \uff0c \u8fd9 \u4e0d\u4f1a \u751f\u6210 \u8981 \u663e\u793a \u7684 \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 1 \u65f6 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u663e\u793a \u8981 \u9075\u5faa \u7684 \u53c2\u8003 \u8def\u7ebf \u3002 \u5982\u679c \u6b64 \u53d8\u91cf \u8bbe\u7f6e \u4e3a \u5927\u4e8e \u4efb\u4f55 \u503c \uff0c 1 \u5f15\u64ce \u5c06 \u6253\u5370 \u4eff\u771f \u7684 \u5b8c\u6574 \u72b6\u6001 \u4ee5 \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 CHECKPOINT _ ENDPOINT ( JSON ) \u2014 \u5c06 \u8bb0\u5f55 Leaderboard \u6307\u6807 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 RECORD _ PATH \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u2014 \u5c06 \u5b58\u50a8 Carla \u65e5\u5fd7 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b\u672a \u8bbe\u7f6e \u3002 RESUME \u2014 \u6307\u793a \u4eff\u771f \u662f\u5426 \u5e94\u4ece \u6700\u540e \u4e00\u6761 \u8def\u7ebf \u6062\u590d \u7684 \u6807\u5fd7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b\u672a \u8bbe\u7f6e \u3002 CHALLENGE _ TRACK _ CODENAME \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u2014 \u4ee3\u7406 \u6b63\u5728 \u7ade\u4e89 \u7684 \u8d5b\u9053 \u3002 \u6709 \u4e24\u4e2a \u53ef\u80fd \u7684 \u9009\u9879 \uff1a SENSORS \u548c MAP \u3002 \u8be5 SENSORS \u8d5b\u9053 \u5141\u8bb8 \u4f7f\u7528 \u591a\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u548c \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u3002 \u9664\u4e86 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e4b\u5916 \uff0c MAP \u8d5b\u9053 \u8fd8 \u5141\u8bb8 \u76f4\u63a5 \u8bbf\u95ee OpenDRIVE \u9ad8\u6e05 \u5730\u56fe \u3002 \u60a8 \u8d1f\u8d23 \u6839\u636e \u9700\u8981 \u89e3\u6790 \u548c \u5904\u7406 OpenDRIVE \u6620\u5c04 \u3002 \u8fd9\u4e9b \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u88ab \u4f20\u9012 \u5230 $ { LEADERBOARD _ ROOT } / LEADERBOARD / LEADERBOARD _ evaluator . py \uff0c \u4f5c\u4e3a \u6267\u884c \u4eff\u771f \u7684 \u5165\u53e3 \u70b9 \u3002 \u67e5\u770b leaderboard _ evaluator . py \uff0c \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u6267\u884c \u548c \u8bc4\u4f30 \u4ee3\u7406 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u4e86\u89e3 \u6392\u884c\u699c \u7ec4\u4ef6"},{"location":"leaderboard_get_started/#_7","text":"\u65b0 \u4ee3\u7406 \u7684 \u5b9a\u4e49 \u59cb\u4e8e \u521b\u5efa \u4e00\u4e2a \u65b0\u7c7b \uff0c \u8be5\u7c7b \u7ee7\u627f \u81ea leaderboard . autoagents . autonomous _ agent . AutonomousAgent \u3002","title":"\u521b\u5efa \u81ea\u5df1 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406"},{"location":"leaderboard_get_started/#get_entry_point","text":"\u9996\u5148 \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u540d\u4e3a get _ entry _ point \u7684 \u51fd\u6570 \uff0c \u8be5 \u51fd\u6570 \u8fd4\u56de \u65b0\u7c7b \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u81ea\u52a8 \u5b9e\u4f8b \u5316 \u60a8 \u7684 \u4ee3\u7406 \u3002 from leaderboard . autoagents . autonomous _ agent import AutonomousAgent def get _ entry _ point ( ) : return ' MyAgent ' class MyAgent ( AutonomousAgent ) : ...","title":"\u521b\u5efa get _ entry _ point"},{"location":"leaderboard_get_started/#setup","text":"\u5728 \u4ee3\u7406 \u7c7b\u4e2d \u91cd\u5199 setup \u65b9\u6cd5 \u3002 \u6b64 \u65b9\u6cd5 \u6267\u884c \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u521d\u59cb \u521d\u59cb\u5316 \u548c \u5b9a\u4e49 \u3002 \u6bcf\u6b21 \u521d\u59cb \u521d\u59cb\u5316 \u8def\u7531 \u65f6 \uff0c \u90fd \u4f1a \u81ea\u52a8 \u8c03\u7528 \u5b83 \u3002 \u5b83 \u53ef\u4ee5 \u63a5\u6536 \u6307\u5411 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u53ef\u9009 \u53c2\u6570 \u3002 \u7528\u6237 \u5e94 \u5206\u6790 \u6b64 \u6587\u4ef6 \u3002 \u81f3\u5c11 \uff0c \u60a8 \u9700\u8981 \u6307\u5b9a \u53c2\u4e0e \u7684 \u66f2\u76ee \u3002 from leaderboard . autoagents . autonomous _ agent import Track ... def setup ( self , path _ to _ conf _ file ) : self . track = Track . SENSORS # \u6b64 \u65b9\u6cd5 \u81f3\u5c11 \u8bbe\u7f6e \u6392\u884c \u6392\u884c\u699c \u6a21\u5f0f \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b SENSORS \u6ce8\u610f self . track \u5c5e\u6027 \u5e94\u8be5 \u662f \u679a\u4e3e \uff0c \u800c \u4e0d\u662f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u5b83 \u53ea\u80fd \u53d6 \u53ef\u80fd \u7684 \u503c Track . SENSORS \u6216 Track . MAP \u3002","title":"\u91cd\u5199 setup \u65b9\u6cd5"},{"location":"leaderboard_get_started/#_8","text":"\u60a8 \u8fd8 \u5fc5\u987b \u8986\u76d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \uff0c \u8be5 \u65b9\u6cd5 \u5b9a\u4e49 \u4e86 \u60a8 \u7684 \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 def sensors ( self ) : sensors = [ { ' type ' : ' sensor . camera . rgb ' , ' id ' : ' Center ' , ' x ' : 0.7 , ' y ' : 0.0 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 0.0 , ' width ' : 300 , ' height ' : 200 , ' fov ' : 100 } , { ' type ' : ' sensor . lidar . ray _ cast ' , ' id ' : ' LIDAR ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 } , { ' type ' : ' sensor . other . radar ' , ' id ' : ' RADAR ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' fov ' : 30 } , { ' type ' : ' sensor . other . gnss ' , ' id ' : ' GPS ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 } , { ' type ' : ' sensor . other . imu ' , ' id ' : ' IMU ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 } , { ' type ' : ' sensor . opendrive _ map ' , ' id ' : ' OpenDRIVE ' , ' reading _ frequency ' : 1 } , { ' type ' : ' sensor . speedometer ' , ' id ' : ' Speed ' } , ] return sensors \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u90fd \u5177\u6709 \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u5728 agent _ wrapper . py \u4e2d \u8fdb\u884c \u68c0\u67e5 \u3002 \u8fd9\u6837 \u505a \u53ef\u4ee5 \u4f7f \u6240\u6709 \u56e2\u961f \u5728 \u4e00\u4e2a \u901a\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6846\u67b6 \u5185 \u8fdb\u884c \u7ade\u4e89 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u8868\u793a \u4e3a \u5b57\u5178 \uff0c \u5305\u542b \u4ee5\u4e0b \u5c5e\u6027 \uff1a type : \u8981 \u6dfb\u52a0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 id : \u5c06 \u88ab \u7ed9\u4e88 \u7a0d\u540e \u8981 \u8bbf\u95ee \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6807\u7b7e \u3002 other attributes : \u8fd9\u4e9b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u7684 \uff0c \u4f8b\u5982 \uff1a \u5916\u53c2 \u548c fov \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u76f8\u5bf9 \u5750\u6807 \u4e2d \u8bbe\u7f6e \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5185\u90e8 \u548c \u5916\u90e8 \u53c2\u6570 \uff08 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff09 \u3002 \u8bf7 \u6ce8\u610f \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff0c \u5373 \uff1a x - front \uff0c y - right \uff0c z - up \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \uff1a sensor . camera . rgb : \u6355\u6349 \u56fe\u50cf \u7684 \u666e\u901a \u76f8\u673a \u3002 sensor . lidar . ray _ cast : Velodyne 64 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 sensor . other . radar : \u8fdc\u7a0b \u96f7\u8fbe \uff08 \u9ad8\u8fbe 100 \u7c73 \uff09 \u3002 sensor . other . gnss : GPS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u6570\u636e \u3002 sensor . other . imu : 6 \u8f74 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u3002 sensor . opendrive _ map : \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u683c\u5f0f \u516c\u5f00 HD \u6620\u5c04 \u3002 sensor . speedometer : \u63d0\u4f9b \u8fd1\u4f3c \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u7684 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6ce8\u610f \u8bd5\u56fe \u8bbe\u7f6e \u53e6 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u62fc\u9519 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5bfc\u81f4 \u8bbe\u7f6e \u5931\u8d25 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u4efb\u4f55 \u4e00\u4e2a \u6765 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5806\u6808 \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u4fdd\u6301 \u9002\u5ea6 \u7684 \u8ba1\u7b97 \u8d1f\u8f7d \uff0c \u6211\u4eec \u5bf9 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 \u4ee3\u7406 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u91cf \u8bbe\u7f6e \u4e86 \u4ee5\u4e0b \u9650\u5236 \uff1a sensor . camera . rgb : 4 sensor . lidar . ray _ cast : 1 sensor . other . radar : 2 sensor . other . gnss : 1 sensor . other . imu : 1 sensor . opendrive _ map : 1 sensor . speedometer : 1 \u6ce8\u610f \u8bd5\u56fe \u8bbe\u7f6e \u8fc7\u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5355\u5143 \u4f1a \u5bfc\u81f4 \u8bbe\u7f6e \u5931\u8d25 \u3002 \u8fd8\u6709 \u4e00\u4e9b \u7a7a\u95f4 \u9650\u5236 \u9650\u5236 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u8f66\u8f86 \u4f53\u79ef \u5185 \u7684 \u653e\u7f6e \u3002 \u5982\u679c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4efb\u4f55 \u8f74 \uff08 \u4f8b\u5982 [ 3.1 , 0.0 , 0.0 ] \uff09 \u4e0a \u8ddd\u79bb \u5176\u7236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8d85\u8fc7 3 \u7c73 \uff0c \u5219 \u8bbe\u7f6e \u5c06 \u5931\u8d25 \u3002","title":"\u91cd\u5199 \u4f20\u611f\u5668 \u65b9\u6cd5"},{"location":"leaderboard_get_started/#run_step","text":"\u6b64 \u65b9\u6cd5 \u5c06 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u8c03\u7528 \u4e00\u6b21 \uff0c \u4ee5 \u751f\u6210 carla . VehicleControl \u5bf9\u8c61 \u5f62\u5f0f \u7684 \u65b0 \u52a8\u4f5c \u3002 \u786e\u4fdd \u6b64 \u51fd\u6570 \u8fd4\u56de \u5c06 \u7528\u4e8e \u66f4\u65b0 \u4ee3\u7406 \u7684 \u63a7\u5236 \u5bf9\u8c61 \u3002 def run _ step ( self , input _ data , timestamp ) : control = self ._ do _ something _ smart ( input _ data , timestamp ) return control input _ data : \u5305\u542b \u6240 \u8bf7\u6c42 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u7684 \u5b57\u5178 \u3002 \u6570\u636e \u5df2\u7ecf \u5728 sensor _ interface . py \u4e0a \u8fdb\u884c \u4e86 \u5904\u7406 \u9884\u5904\u7406 \uff0c \u5e76 \u5c06 \u4ee5 numpy \u6570\u7ec4 \u7684 \u5f62\u5f0f \u7ed9\u51fa \u3002 \u8be5 \u5b57\u5178 \u7531 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \u4e2d \u5b9a\u4e49 \u7684 id \u7d22\u5f15 \u3002 timestamp : \u5f53\u524d \u4eff\u771f \u77ac\u95f4 \u7684 \u65f6\u95f4 \u6233 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u81ea\u6211 \u4ee3\u7406 \u4e3a \u8fbe\u5230 \u76ee\u7684 \u76ee\u7684\u5730 \u800c\u5e94 \u8d70 \u7684 \u8def\u7ebf \u3002 \u5229\u7528 self ._ global _ plan \u6210\u5458 \u8bbf\u95ee \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u8def\u7531 \u548c self ._ global _ plan _ world _ coord \u4f5c\u4e3a \u5176 \u4e16\u754c \u4f4d\u7f6e \u5bf9\u5e94 \u9879 \u3002","title":"\u91cd\u5199 run _ step \u65b9\u6cd5"},{"location":"leaderboard_get_started/#destroy","text":"\u5728 \u6bcf\u6761 \u8def\u7531 \u7ed3\u675f \u65f6 \uff0c \u5c06 \u8c03\u7528 destroy \u65b9\u6cd5 \uff0c \u5728 \u9700\u8981 \u6e05\u7406 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8986\u76d6 \u8be5 \u65b9\u6cd5 \u3002 \u4f8b\u5982 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u529f\u80fd \u64e6\u9664 \u7f51\u7edc \u4e2d \u4efb\u4f55 \u4e0d \u9700\u8981 \u7684 \u5185\u5b58 def destroy ( self ) : pass","title":"\u91cd\u5199 destroy \u65b9\u6cd5"},{"location":"leaderboard_get_started/#ros_1","text":"\u5982\u679c \u60a8 \u60f3 \u5c06 ROS \u4f5c\u4e3a \u4ee3\u7406 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u4ee5\u4e0b \u662f \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u5efa\u8bae \uff1a ROS Melodic : \u7531\u4e8e \u6392\u884c \u6392\u884c\u699c \u4ec5 \u4e0e Python 3 \u517c\u5bb9 \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 roslibpy \u5728 \u6392\u884c \u6392\u884c\u699c \u548c ROS \u5806\u6808 \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 ROS Noetic : \u7531\u4e8e ROS Noetic \u7684 \u76ee\u6807 \u662f Python3 \uff0c \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 rospy \u521b\u5efa \u4e00\u4e2a \u8282\u70b9 \u6765 \u4e0e \u60a8 \u7684 ROS \u5806\u6808 \u901a\u4fe1 \u6392\u884c \u6392\u884c\u699c \u3002 ROS2 Foxy : \u4e0e ROS Noetic \u7c7b\u4f3c \uff0c \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 rcpy \u4e0e \u60a8 \u7684 \u5806\u6808 \u5efa\u7acb \u901a\u4fe1 \u3002","title":"\u57fa\u4e8e \u4ee3\u7406 \u7684 ROS"},{"location":"leaderboard_get_started/#_9","text":"\u6211\u4eec \u51c6\u5907 \u4e86 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u8def\u7ebf \u4f5c\u4e3a \u8d77\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u9014\u5f84 \u6765 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u4ee3\u7406 \u7684 \u6027\u80fd \u3002 \u53ef\u4ee5 \u5728 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 { LEADERBOARD _ ROOT } / data : routes _ training . xml : \u62df \u7528\u4f5c \u8bad\u7ec3 \u6570\u636e \u7684 50 \u6761 \u8def\u7ebf \uff08 112.8 \u516c\u91cc \uff09 \u3002 routes _ testing . xml : \u62df \u7528\u4f5c \u9a8c\u8bc1 \u6570\u636e \u7684 26 \u6761 \u8def\u7ebf \uff08 58.9 \u516c\u91cc \uff09 \u3002","title":"\u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4ee3\u7406"},{"location":"leaderboard_get_started/#_10","text":"Brady Zhou \u5728 Learning by Cheating \u7684 \u57fa\u7840 \u4e0a \u521b\u9020 \u4e86 \u4e00\u5957 \u51fa\u8272 \u7684 starter kit \u3002","title":"\u57fa\u51c6"},{"location":"leaderboard_submit/","text":"\u4e3a \u6392\u884c \u6392\u884c\u699c 2.0 \u7248 \u63d0\u4ea4 \u4ee3\u7406 \u7b14\u8bb0 \u5c06 \u60a8 \u7684 \u4ee3\u7406 \u63d0\u4ea4 \u7ed9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \uff0c \u5373 \u8868\u793a \u60a8 \u63a5\u53d7 \u4e86 \u4f7f\u7528 \u6761\u6b3e \u3002 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u63d0\u4ea4 Leaderboard 2.0 \u7248\u672c \u7684 \u4ee3\u7406 \uff0c \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Leaderboard1.0 \u7248\u672c \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u63d0\u4ea4 \u6307\u5357 \u3002 \u4e00\u822c \u6b65\u9aa4 \u4e3a\u4e86 \u521b\u5efa \u5e76 \u63d0\u4ea4 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u6392\u884c \u6392\u884c\u699c \u9879\u76ee \u548c scenario _ runner \u7684 \u526f\u672c \u3002 \u5982\u679c \u4e0d\u662f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u8bf7 \u5148 \u8bbf\u95ee \u201c \u5165\u95e8 \u201d \u90e8\u5206 \u3002 \u521b\u5efa \u4e00\u4e2a dockerfile \u6765 \u6784\u5efa \u60a8 \u7684 \u4ee3\u7406 \u4e3a\u4e86 \u8ba9 Carla \u6392\u884c \u6392\u884c\u699c \u8bc4\u4f30 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u9700\u8981 \u5c06 \u5176 \u5c01\u88c5 \u5728 Docker \u955c\u50cf \u4e2d \u3002 \u8981 \u60f3 \u6210\u529f \uff0c \u60a8 \u5fc5\u987b \u80fd\u591f \u5728 docker \u5185 \u8fd0\u884c \u5e26\u6709 \u6392\u884c \u6392\u884c\u699c \u7684 \u4ee3\u7406 \u3002 \u60a8 \u53ef\u4ee5 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u56fe\u50cf \uff0c \u4e5f \u53ef\u4ee5 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \uff1a \u5c06 \u60a8 \u7684 \u4ee3\u7801 \u6258\u7ba1 \u5728 $ { LEADERBOARD _ ROOT } \u5916\u9762 \u3002 \u6211\u4eec \u5c06 \u8be5 \u76ee\u5f55 \u79f0\u4e3a $ { TEAM _ CODE _ ROOT } \u5bf9\u4e8e \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \uff0c \u8fd9 \u5e94\u8be5 \u662f \u60a8 \u7684 ROS \u5de5\u4f5c \u533a \u3002 \u5229\u7528 \u5b58\u50a8 \u5e93\u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b Docker \u6587\u4ef6 \u4e4b\u4e00 \uff0c \u5176\u4e2d \u573a\u666f \u8fd0\u884c \u5668 \u548c \u6392\u884c \u6392\u884c\u699c \u6240 \u9700 \u7684 \u6240\u6709 \u4f9d\u8d56 \u9879\u5747 \u5df2 \u8bbe\u7f6e \u3002 \u57fa\u4e8e Python \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u793a\u4f8b Docker \uff0c \u800c \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4f7f\u7528 \u5176 Docker \u3002 \u5305\u62ec \u4ee3\u7406 \u6240 \u9700 \u7684 \u4f9d\u8d56 \u9879 \u548c \u9644\u52a0 \u5305 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5728 \u7531 \u6807\u7b7e \u201c BEGINNING OF USER COMMANDS \u201d \u548c \u201c END OF USER COMMANDS \u201d \u5206\u9694 \u7684 \u533a\u57df \u4e2d \u6dfb\u52a0 \u65b0 \u547d\u4ee4 \u3002 \u66f4\u65b0 \u53d8\u91cf TEAM _ AGENT \u4ee5 \u8bbe\u7f6e \u4ee3\u7406 \u6587\u4ef6 \u548c TEAM _ CONFIG \uff0c \u5982\u679c \u9700\u8981 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u4e0d\u8981 \u66f4\u6539 \u8def\u5f84 \u201c / workspace / team _ code \u201d \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u60f3\u8981 \u83b7\u53d6 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u90fd \u5728 \u5185\u90e8 \uff0c $ { HOME } / agent _ sources . sh \u56e0\u4e3a \u5728 \u5176\u4ed6 \u4efb\u4f55 \u5730\u65b9 \u6dfb\u52a0 \u7684 \u6e90 \u90fd \u4e0d\u4f1a \u88ab \u8c03\u7528 \u3002 \u5728 \u4e91\u4e2d \u8fd0\u884c \u4ee3\u7406 \u4e4b\u524d \u4f1a \u81ea\u52a8 \u83b7\u53d6 \u6b64 \u6587\u4ef6 \u3002 \u6ce8\u610f \u8bf7 \u6ce8\u610f \uff0c \u5f53 \u60a8 \u5c06 \u6761\u76ee \u63d0\u4ea4 \u5230 \u4e91\u65f6 \uff0c \u60a8 \u5bf9 \u6392\u884c \u6392\u884c\u699c \u6216 \u573a\u666f \u8fd0\u884c \u7a0b\u5e8f \u5b58\u50a8 \u5e93\u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u90fd \u5c06 \u88ab \u8986\u76d6 \u3002 \u5c06 \u60a8 \u7684 \u4ee3\u7406 \u6784\u5efa \u5230 docker \u955c\u50cf \u4e2d dockerfile \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c make _ docker . sh \u811a\u672c \u6765 \u521b\u5efa \u5b83 \uff0c \u8be5 \u811a\u672c \u4f1a \u5728 \u8be5 \u540d\u79f0 \u4e0b \u751f\u6210 docker \u6620\u50cf leaderboard - user \u3002 $ { LEADERBOARD _ ROOT } / scripts / make _ docker . sh [ -- ros - distro | - r ROS _ DISTRO ] \u8be5 \u811a\u672c \u786e\u4fdd \u6b63\u786e \u5b9a\u4e49 \u6240\u6709 \u6240 \u9700 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u7136\u540e \u5c06 \u5176 \u5185\u5bb9 \u590d\u5236 \u590d\u5236\u5230 \u521b\u5efa \u7684 Dockerfile \u4e2d \u3002 \u5efa\u8bae \u5c06 \u8fd9\u4e9b \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4f5c\u4e3a \u60a8 \u7684 $ { HOME } / . bashrc \u6587\u4ef6 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e76 \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a $ { CARLA _ ROOT } $ { SCENARIO _ RUNNER _ ROOT } $ { LEADERBOARD _ ROOT } $ { TEAM _ CODE _ ROOT } $ { ROS _ DISTRO } \uff08 \u4ec5 ROS \u4ee3\u7406 \u9700\u8981 \uff09 \u8bf7 \u968f\u610f \u8c03\u6574 \u6b64 \u811a\u672c \u4ee5 \u590d\u5236 \u60a8 \u8ba4\u4e3a \u5408\u9002 \u7684 \u5176\u4ed6 \u6587\u4ef6 \u548c \u8d44\u6e90 \u3002 \u6ce8\u610f \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u672c\u5730 \u8fd0\u884c \u6392\u884c \u6392\u884c\u699c \u6765 \u6d4b\u8bd5 \u60a8 \u7684 docker \u6620\u50cf \u6211\u4eec \u8fd8 \u60f3 \u91cd\u70b9 \u4ecb\u7ecd \u6392\u884c \u6392\u884c\u699c \u4ee3\u7406 \u5b58\u50a8 \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u591a\u4e2a \u65e8\u5728 \u4e0e Leaderboard 2.0 \u914d\u5408 \u4f7f\u7528 \u7684 \u4ee3\u7406 \uff0c \u4ee5\u53ca \u5c06 \u5b83\u4eec \u5c01\u88c5 \u5728 Docker \u4e2d\u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 \u5728 Eval AI \u6ce8\u518c \u65b0 \u7528\u6237 \u6211\u4eec Eval AI \u7684 \u5408\u4f5c \u4f19\u4f34 \u5408\u4f5c\u4f19\u4f34 \u5f00\u53d1 \u4e86 \u6392\u884c \u6392\u884c\u699c \u7684 \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \u3002 \u8981 \u63d0\u4ea4 \u5185\u5bb9 \uff0c \u60a8 \u9700\u8981 \u5728 \u7f51\u7ad9 \u4e0a \u6ce8\u518c \u7528\u6237 \u3002 \u6ce8\u610f \u8bf7 \u52a1\u5fc5 \u586b\u5199 \u60a8 \u7684 \u7528\u6237 \u96b6\u5c5e \u5173\u7cfb \uff0c \u5426\u5219 \u60a8 \u53ef\u80fd \u4e0d\u4f1a \u88ab \u63a5\u53d7 \u53c2\u52a0 \u6311\u6218 \u3002 \u521b\u5efa \u65b0 \u56e2\u961f \u5728 Eval AI \u6ce8\u518c \u7528\u6237 \u540e \uff0c \u901a\u8fc7 \u5355\u51fb \u201c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u56e2\u961f \u201d \u90e8\u5206 \u521b\u5efa \u4e00\u4e2a \u65b0 \u56e2\u961f \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u9700\u8981 \u5728 Carla \u6392\u884c \u6392\u884c\u699c 2.0 \u4e2d \u6ce8\u518c \u4e00\u4e2a \u56e2\u961f \u3002 AlphaDrive UI \u4e2d \u7684 \u56e2\u961f \u521b\u5efa \u5c4f\u5e55 \u3002 \u7533\u8bf7 \u52a0\u5165 \u7533\u8bf7\u52a0\u5165 Carla \u6392\u884c \u6392\u884c\u699c \u8f6c \u81f3 \u201c \u6240\u6709 \u6311\u6218 \u201d \u90e8\u5206 \u5e76 \u627e\u5230 Carla \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \uff0c \u6216 \u4f7f\u7528 \u6b64 \u94fe\u63a5 \u3002 \u9009\u62e9 \u201c \u53c2\u4e0e \u201d \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u53c2\u4e0e \u56e2\u961f \u6765 \u7533\u8bf7 \u6311\u6218 \u3002 \u60a8 \u9700\u8981 \u7b49\u5f85 Carla \u6392\u884c \u6392\u884c\u699c \u7ba1\u7406 \u7ba1\u7406\u5458 \u9a8c\u8bc1 \u60a8 \u7684 \u56e2\u961f \u3002 \u4e00\u65e6 \u60a8 \u7684 \u56e2\u961f \u901a\u8fc7 \u9a8c\u8bc1 \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u63d0\u4ea4 \u3002 \u57fa\u51c6 \u90e8\u5206 \u3002 \u63d0\u4ea4 \u60a8 \u7684 \u610f\u89c1 \u4e00\u65e6 \u60a8 \u7684 \u56e2\u961f \u7ecf\u8fc7 \u9a8c\u8bc1 \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u63d0\u4ea4 \u3002 \u5728 \u201c \u6982\u8ff0 \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u4e00\u822c \u4fe1\u606f \uff0c \u8bf7 \u524d\u5f80 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u8fdb\u884c \u63d0\u4ea4 \u3002 \u60a8 \u5c06 \u5728 \u90a3\u91cc \u627e\u5230 \u63d0\u4ea4 \u8bf4\u660e \u3002 \u60a8 \u9700\u8981 \u4f7f\u7528 pip \u5b89\u88c5 EvalAI CLI \uff1a pip install evalai \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u901a\u8fc7 \u4ee4\u724c \u6765 \u8bc6\u522b \u60a8 \u7684 \u7528\u6237 \uff1a evalai set _ token < token > \u60a8 \u53ef\u4ee5 \u4ece EvalAI \u7f51\u7ad9 \u7684 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u68c0\u7d22 \u60a8 \u7684 \u4ee4\u724c \u3002 \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4ece \u63d0\u4ea4 \u8bf4\u660e \u4e2d \u590d\u5236 \u5e76 \u7c98\u8d34 \u547d\u4ee4 \uff1a CLI \u63d0\u4ea4 \u8bf4\u660e \u3002 \u6ce8\u610f \u8be5 \u4ee4\u724c \u662f \u7279\u5b9a \u4e8e \u60a8 \u7684 \u7528\u6237 \u7684 \uff0c \u6bcf\u4e2a \u7528\u6237 \u90fd \u4f1a \u5728 \u7f51\u7ad9 \u7684 \u6b64 \u90e8\u5206 \u4e2d \u770b\u5230 \u4e0d\u540c \u7684 \u4ee4\u724c \u3002 \u4e0d\u8981 \u5171\u4eab \u4ee4\u724c \uff0c \u5426\u5219 \u63d0\u4ea4 \u4f5c\u8005 \u5c06\u4f1a \u4ea7\u751f \u6df7\u6dc6 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u63a8\u9001 Docker \u955c\u50cf \uff1a evalai push < image > : < tag > -- phase < phase _ name > \u60a8 \u53ef\u4ee5 \u5728 \u56db\u4e2a \u8f68\u8ff9 \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff08 \u5728 EvalAI \u7f51\u7ad9 \u4e2d \u79f0\u4e3a \u9636\u6bb5 \uff09 \uff1a \u6392\u884c \u6392\u884c\u699c 2.0 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6392\u884c \u6392\u884c\u699c 2.0 - \u5730\u56fe \u6392\u884c \u6392\u884c\u699c 1.0 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6392\u884c \u6392\u884c\u699c 1.0 - \u5730\u56fe \u5bf9\u4e8e \u6392\u884c \u6392\u884c\u699c 2.0 \u8d5b\u9053 \uff0c \u60a8 \u5fc5\u987b \u9996\u5148 \u5b8c\u6210 \u76f8\u5e94 \u7684 \u8d44\u683c \u4efb\u52a1 \uff1a \u6392\u884c \u6392\u884c\u699c 2.0 - SENSORS \u9884\u9009 \u9884\u9009\u8d5b \u8d5b\u9053 \u6392\u884c \u6392\u884c\u699c 2.0 - MAP \u9884\u9009 \u9884\u9009\u8d5b \u8d5b\u9053 \u6ce8\u610f \u5728 \u6d89\u53ca \u6392\u884c \u6392\u884c\u699c \u7684 \u5e74\u5ea6 \u6bd4\u8d5b \u671f\u95f4 \uff0c \u67d0\u4e9b \u8d5b\u9053 \u53ef\u80fd \u4f1a \u6682\u65f6 \u5173\u95ed \u3002 \u8bf7 \u5bc6\u5207 \u5173\u6ce8 \u6392\u884c \u6392\u884c\u699c \u7f51\u7ad9 \u548c Discord \u8bba\u575b \uff0c \u4e86\u89e3 \u8d5b\u9053 \u4f55\u65f6 \u53ef\u80fd \u5173\u95ed \u63d0\u4ea4 \u3002 \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4ece \u4ee5\u4e0b \u90e8\u5206 \u590d\u5236 \u5e76 \u7c98\u8d34 \uff0c \u4ee5 \u786e\u4fdd \u63d0\u4ea4 \u5230 \u6b63\u786e \u7684 \u8f68\u9053 \uff0c \u5e76 \u5c06 < image > \u548c \u66ff\u6362 < tag > \u4e3a \u9002\u5408 \u60a8 \u7684 Docker \u6620\u50cf \u7684 \u503c \uff1a \u8981 \u63d0\u4ea4 \u5230 \u6bcf\u4e2a \u8f68\u8ff9 \u7684 CLI \u547d\u4ee4 \u3002 \u68c0\u67e5 \u60a8 \u63d0\u4ea4 \u7684 \u6570\u636e \u521b\u5efa \u63d0\u4ea4 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u8f6c\u5230 \u6b64 My Submissions \u90e8\u5206 \u67e5\u770b \u6240\u6709 \u63d0\u4ea4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u72b6\u6001 \u663e\u793a \u63d0\u4ea4 \u72b6\u6001 \u7684 \u9ad8\u7ea7 \u8bf4\u660e \u3002 \u6240\u6709 \u63d0\u4ea4 \u90fd \u4ece \u72b6\u6001 \u5f00\u59cb \uff0c \u4e00\u65e6 \u5728 \u540e \u7aef \u5f00\u59cb \u8fd0\u884c \u5f00\u59cb\u8fd0\u884c \uff0c SUBMITTED \u5c31 \u4f1a \u66f4 \u6539\u4e3a \u3002 \u5b8c\u6210 \u540e \uff0c \u5982\u679c \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u5b83 \u5c06 \u66f4 \u6539\u4e3a PARTIALLY _ EVALUATED \uff0c \u6216\u8005 \u5982\u679c \u53d1\u751f \u751f\u610f \u610f\u5916 \u53d1\u751f\u610f\u5916 \u60c5\u51b5 \uff0c \u5219 \u66f4 \u6539\u4e3a FINISHEDFAILED \u3002 \u5931\u8d25 \u7684 \u63d0\u4ea4 \u53ef\u4ee5 \u6062\u590d \uff0c \u8fd9 \u5c06 \u7ee7\u7eed \u63d0\u4ea4 \uff0c \u800c \u4e0d \u91cd\u590d \u5df2\u7ecf \u5b8c\u6210 \u7684 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u5c06 \u5177\u6709 RESUMED \u72b6\u6001 \uff0c \u800c \u4e0d\u662f SUBMITTED \u76f4\u5230 \u5b83\u4eec \u5f00\u59cb \u8fd0\u884c \u5f00\u59cb\u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u968f\u65f6 \u53d6\u6d88 \u63d0\u4ea4 \u3001 \u505c\u6b62 \u63d0\u4ea4 \u5e76 \u5c06 \u5176 \u72b6\u6001 \u66f4 \u6539\u4e3a CANCELLED \u3002 \u4efb\u4f55 \u63d0\u4ea4 \u90fd \u53ef\u4ee5 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4f7f\u7528 \u76f8\u540c \u63d0\u4ea4 \u7684 docker \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u63d0\u4ea4 \u3002 \u5982\u679c \u63d0\u4ea4 \u6b63\u5728 \u8fd0\u884c \uff0c \u5b83 \u5c06 \u81ea\u52a8 \u53d6\u6d88 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u63d0\u4ea4 \u7684 \u7ed3\u679c \uff0c \u8bf7 \u8bbf\u95ee Stdout file \u63d0\u4f9b \u7684 \u94fe\u63a5 \u3002 \u8be5 \u6587\u4ef6 \u5305\u542b \u6709\u5173 \u63d0\u4ea4 \u7684 \u4e00\u4e9b \u4e00\u822c \u4fe1\u606f \uff0c \u5305\u62ec \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u8def\u7ebf \u8fdb\u5ea6 \u548c \u6700\u7ec8 \u7ed3\u679c \uff0c \u4ee5\u53ca \u6bcf\u6761 \u8def\u7ebf \u7684 \u72b6\u6001 \u548c \u6027\u80fd \u7684 \u672f\u8bed \u672f\u8bed\u8868 \u3002 \u6700\u540e \uff0c \u5982\u679c \u60a8 \u60f3 \u516c\u5f00 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \uff0c \u8bf7 \u9009\u4e2d \u8be5 Show on Leaderboard \u6846 \uff0c \u5b83 \u73b0\u5728 \u5c06 \u663e\u793a \u5728 Leaderboard \u6311\u6218 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u968f\u610f \u7f16\u8f91 \u63d0\u4ea4 \u5185\u5bb9 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u65b9\u6cd5 \u540d\u79f0 \u3001 \u63cf\u8ff0 \u4ee5\u53ca \u9879\u76ee \u6216 \u51fa\u7248 \u51fa\u7248\u7269 \u7684 URL \u7684 \u4efb\u4f55 \u4fe1\u606f \u3002","title":"\u4e3a \u6392\u884c\u699c 2.0 \u7248 \u63d0\u4ea4 \u4ee3\u7406"},{"location":"leaderboard_submit/#20","text":"\u7b14\u8bb0 \u5c06 \u60a8 \u7684 \u4ee3\u7406 \u63d0\u4ea4 \u7ed9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \uff0c \u5373 \u8868\u793a \u60a8 \u63a5\u53d7 \u4e86 \u4f7f\u7528 \u6761\u6b3e \u3002 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u63d0\u4ea4 Leaderboard 2.0 \u7248\u672c \u7684 \u4ee3\u7406 \uff0c \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Leaderboard1.0 \u7248\u672c \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u63d0\u4ea4 \u6307\u5357 \u3002","title":"\u4e3a \u6392\u884c\u699c 2.0 \u7248 \u63d0\u4ea4 \u4ee3\u7406"},{"location":"leaderboard_submit/#_1","text":"\u4e3a\u4e86 \u521b\u5efa \u5e76 \u63d0\u4ea4 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u6392\u884c \u6392\u884c\u699c \u9879\u76ee \u548c scenario _ runner \u7684 \u526f\u672c \u3002 \u5982\u679c \u4e0d\u662f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u8bf7 \u5148 \u8bbf\u95ee \u201c \u5165\u95e8 \u201d \u90e8\u5206 \u3002 \u521b\u5efa \u4e00\u4e2a dockerfile \u6765 \u6784\u5efa \u60a8 \u7684 \u4ee3\u7406 \u4e3a\u4e86 \u8ba9 Carla \u6392\u884c \u6392\u884c\u699c \u8bc4\u4f30 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u9700\u8981 \u5c06 \u5176 \u5c01\u88c5 \u5728 Docker \u955c\u50cf \u4e2d \u3002 \u8981 \u60f3 \u6210\u529f \uff0c \u60a8 \u5fc5\u987b \u80fd\u591f \u5728 docker \u5185 \u8fd0\u884c \u5e26\u6709 \u6392\u884c \u6392\u884c\u699c \u7684 \u4ee3\u7406 \u3002 \u60a8 \u53ef\u4ee5 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u56fe\u50cf \uff0c \u4e5f \u53ef\u4ee5 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \uff1a \u5c06 \u60a8 \u7684 \u4ee3\u7801 \u6258\u7ba1 \u5728 $ { LEADERBOARD _ ROOT } \u5916\u9762 \u3002 \u6211\u4eec \u5c06 \u8be5 \u76ee\u5f55 \u79f0\u4e3a $ { TEAM _ CODE _ ROOT } \u5bf9\u4e8e \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \uff0c \u8fd9 \u5e94\u8be5 \u662f \u60a8 \u7684 ROS \u5de5\u4f5c \u533a \u3002 \u5229\u7528 \u5b58\u50a8 \u5e93\u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b Docker \u6587\u4ef6 \u4e4b\u4e00 \uff0c \u5176\u4e2d \u573a\u666f \u8fd0\u884c \u5668 \u548c \u6392\u884c \u6392\u884c\u699c \u6240 \u9700 \u7684 \u6240\u6709 \u4f9d\u8d56 \u9879\u5747 \u5df2 \u8bbe\u7f6e \u3002 \u57fa\u4e8e Python \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u793a\u4f8b Docker \uff0c \u800c \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4f7f\u7528 \u5176 Docker \u3002 \u5305\u62ec \u4ee3\u7406 \u6240 \u9700 \u7684 \u4f9d\u8d56 \u9879 \u548c \u9644\u52a0 \u5305 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5728 \u7531 \u6807\u7b7e \u201c BEGINNING OF USER COMMANDS \u201d \u548c \u201c END OF USER COMMANDS \u201d \u5206\u9694 \u7684 \u533a\u57df \u4e2d \u6dfb\u52a0 \u65b0 \u547d\u4ee4 \u3002 \u66f4\u65b0 \u53d8\u91cf TEAM _ AGENT \u4ee5 \u8bbe\u7f6e \u4ee3\u7406 \u6587\u4ef6 \u548c TEAM _ CONFIG \uff0c \u5982\u679c \u9700\u8981 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u4e0d\u8981 \u66f4\u6539 \u8def\u5f84 \u201c / workspace / team _ code \u201d \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u60f3\u8981 \u83b7\u53d6 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u90fd \u5728 \u5185\u90e8 \uff0c $ { HOME } / agent _ sources . sh \u56e0\u4e3a \u5728 \u5176\u4ed6 \u4efb\u4f55 \u5730\u65b9 \u6dfb\u52a0 \u7684 \u6e90 \u90fd \u4e0d\u4f1a \u88ab \u8c03\u7528 \u3002 \u5728 \u4e91\u4e2d \u8fd0\u884c \u4ee3\u7406 \u4e4b\u524d \u4f1a \u81ea\u52a8 \u83b7\u53d6 \u6b64 \u6587\u4ef6 \u3002 \u6ce8\u610f \u8bf7 \u6ce8\u610f \uff0c \u5f53 \u60a8 \u5c06 \u6761\u76ee \u63d0\u4ea4 \u5230 \u4e91\u65f6 \uff0c \u60a8 \u5bf9 \u6392\u884c \u6392\u884c\u699c \u6216 \u573a\u666f \u8fd0\u884c \u7a0b\u5e8f \u5b58\u50a8 \u5e93\u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u90fd \u5c06 \u88ab \u8986\u76d6 \u3002","title":"\u4e00\u822c \u6b65\u9aa4"},{"location":"leaderboard_submit/#docker","text":"dockerfile \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c make _ docker . sh \u811a\u672c \u6765 \u521b\u5efa \u5b83 \uff0c \u8be5 \u811a\u672c \u4f1a \u5728 \u8be5 \u540d\u79f0 \u4e0b \u751f\u6210 docker \u6620\u50cf leaderboard - user \u3002 $ { LEADERBOARD _ ROOT } / scripts / make _ docker . sh [ -- ros - distro | - r ROS _ DISTRO ] \u8be5 \u811a\u672c \u786e\u4fdd \u6b63\u786e \u5b9a\u4e49 \u6240\u6709 \u6240 \u9700 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u7136\u540e \u5c06 \u5176 \u5185\u5bb9 \u590d\u5236 \u590d\u5236\u5230 \u521b\u5efa \u7684 Dockerfile \u4e2d \u3002 \u5efa\u8bae \u5c06 \u8fd9\u4e9b \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4f5c\u4e3a \u60a8 \u7684 $ { HOME } / . bashrc \u6587\u4ef6 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e76 \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a $ { CARLA _ ROOT } $ { SCENARIO _ RUNNER _ ROOT } $ { LEADERBOARD _ ROOT } $ { TEAM _ CODE _ ROOT } $ { ROS _ DISTRO } \uff08 \u4ec5 ROS \u4ee3\u7406 \u9700\u8981 \uff09 \u8bf7 \u968f\u610f \u8c03\u6574 \u6b64 \u811a\u672c \u4ee5 \u590d\u5236 \u60a8 \u8ba4\u4e3a \u5408\u9002 \u7684 \u5176\u4ed6 \u6587\u4ef6 \u548c \u8d44\u6e90 \u3002 \u6ce8\u610f \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u672c\u5730 \u8fd0\u884c \u6392\u884c \u6392\u884c\u699c \u6765 \u6d4b\u8bd5 \u60a8 \u7684 docker \u6620\u50cf \u6211\u4eec \u8fd8 \u60f3 \u91cd\u70b9 \u4ecb\u7ecd \u6392\u884c \u6392\u884c\u699c \u4ee3\u7406 \u5b58\u50a8 \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u591a\u4e2a \u65e8\u5728 \u4e0e Leaderboard 2.0 \u914d\u5408 \u4f7f\u7528 \u7684 \u4ee3\u7406 \uff0c \u4ee5\u53ca \u5c06 \u5b83\u4eec \u5c01\u88c5 \u5728 Docker \u4e2d\u6240 \u9700 \u7684 \u6587\u4ef6 \u3002","title":"\u5c06 \u60a8 \u7684 \u4ee3\u7406 \u6784\u5efa \u5230 docker \u955c\u50cf \u4e2d"},{"location":"leaderboard_submit/#eval-ai","text":"\u6211\u4eec Eval AI \u7684 \u5408\u4f5c \u4f19\u4f34 \u5408\u4f5c\u4f19\u4f34 \u5f00\u53d1 \u4e86 \u6392\u884c \u6392\u884c\u699c \u7684 \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \u3002 \u8981 \u63d0\u4ea4 \u5185\u5bb9 \uff0c \u60a8 \u9700\u8981 \u5728 \u7f51\u7ad9 \u4e0a \u6ce8\u518c \u7528\u6237 \u3002 \u6ce8\u610f \u8bf7 \u52a1\u5fc5 \u586b\u5199 \u60a8 \u7684 \u7528\u6237 \u96b6\u5c5e \u5173\u7cfb \uff0c \u5426\u5219 \u60a8 \u53ef\u80fd \u4e0d\u4f1a \u88ab \u63a5\u53d7 \u53c2\u52a0 \u6311\u6218 \u3002","title":"\u5728 Eval AI \u6ce8\u518c \u65b0 \u7528\u6237"},{"location":"leaderboard_submit/#_2","text":"\u5728 Eval AI \u6ce8\u518c \u7528\u6237 \u540e \uff0c \u901a\u8fc7 \u5355\u51fb \u201c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u56e2\u961f \u201d \u90e8\u5206 \u521b\u5efa \u4e00\u4e2a \u65b0 \u56e2\u961f \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u9700\u8981 \u5728 Carla \u6392\u884c \u6392\u884c\u699c 2.0 \u4e2d \u6ce8\u518c \u4e00\u4e2a \u56e2\u961f \u3002 AlphaDrive UI \u4e2d \u7684 \u56e2\u961f \u521b\u5efa \u5c4f\u5e55 \u3002","title":"\u521b\u5efa \u65b0 \u56e2\u961f"},{"location":"leaderboard_submit/#carla","text":"\u8f6c \u81f3 \u201c \u6240\u6709 \u6311\u6218 \u201d \u90e8\u5206 \u5e76 \u627e\u5230 Carla \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \uff0c \u6216 \u4f7f\u7528 \u6b64 \u94fe\u63a5 \u3002 \u9009\u62e9 \u201c \u53c2\u4e0e \u201d \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u53c2\u4e0e \u56e2\u961f \u6765 \u7533\u8bf7 \u6311\u6218 \u3002 \u60a8 \u9700\u8981 \u7b49\u5f85 Carla \u6392\u884c \u6392\u884c\u699c \u7ba1\u7406 \u7ba1\u7406\u5458 \u9a8c\u8bc1 \u60a8 \u7684 \u56e2\u961f \u3002 \u4e00\u65e6 \u60a8 \u7684 \u56e2\u961f \u901a\u8fc7 \u9a8c\u8bc1 \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u63d0\u4ea4 \u3002 \u57fa\u51c6 \u90e8\u5206 \u3002","title":"\u7533\u8bf7\u52a0\u5165 Carla \u6392\u884c\u699c"},{"location":"leaderboard_submit/#_3","text":"\u4e00\u65e6 \u60a8 \u7684 \u56e2\u961f \u7ecf\u8fc7 \u9a8c\u8bc1 \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u63d0\u4ea4 \u3002 \u5728 \u201c \u6982\u8ff0 \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u4e00\u822c \u4fe1\u606f \uff0c \u8bf7 \u524d\u5f80 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u8fdb\u884c \u63d0\u4ea4 \u3002 \u60a8 \u5c06 \u5728 \u90a3\u91cc \u627e\u5230 \u63d0\u4ea4 \u8bf4\u660e \u3002 \u60a8 \u9700\u8981 \u4f7f\u7528 pip \u5b89\u88c5 EvalAI CLI \uff1a pip install evalai \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u901a\u8fc7 \u4ee4\u724c \u6765 \u8bc6\u522b \u60a8 \u7684 \u7528\u6237 \uff1a evalai set _ token < token > \u60a8 \u53ef\u4ee5 \u4ece EvalAI \u7f51\u7ad9 \u7684 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u68c0\u7d22 \u60a8 \u7684 \u4ee4\u724c \u3002 \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4ece \u63d0\u4ea4 \u8bf4\u660e \u4e2d \u590d\u5236 \u5e76 \u7c98\u8d34 \u547d\u4ee4 \uff1a CLI \u63d0\u4ea4 \u8bf4\u660e \u3002 \u6ce8\u610f \u8be5 \u4ee4\u724c \u662f \u7279\u5b9a \u4e8e \u60a8 \u7684 \u7528\u6237 \u7684 \uff0c \u6bcf\u4e2a \u7528\u6237 \u90fd \u4f1a \u5728 \u7f51\u7ad9 \u7684 \u6b64 \u90e8\u5206 \u4e2d \u770b\u5230 \u4e0d\u540c \u7684 \u4ee4\u724c \u3002 \u4e0d\u8981 \u5171\u4eab \u4ee4\u724c \uff0c \u5426\u5219 \u63d0\u4ea4 \u4f5c\u8005 \u5c06\u4f1a \u4ea7\u751f \u6df7\u6dc6 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u63a8\u9001 Docker \u955c\u50cf \uff1a evalai push < image > : < tag > -- phase < phase _ name > \u60a8 \u53ef\u4ee5 \u5728 \u56db\u4e2a \u8f68\u8ff9 \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff08 \u5728 EvalAI \u7f51\u7ad9 \u4e2d \u79f0\u4e3a \u9636\u6bb5 \uff09 \uff1a \u6392\u884c \u6392\u884c\u699c 2.0 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6392\u884c \u6392\u884c\u699c 2.0 - \u5730\u56fe \u6392\u884c \u6392\u884c\u699c 1.0 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6392\u884c \u6392\u884c\u699c 1.0 - \u5730\u56fe \u5bf9\u4e8e \u6392\u884c \u6392\u884c\u699c 2.0 \u8d5b\u9053 \uff0c \u60a8 \u5fc5\u987b \u9996\u5148 \u5b8c\u6210 \u76f8\u5e94 \u7684 \u8d44\u683c \u4efb\u52a1 \uff1a \u6392\u884c \u6392\u884c\u699c 2.0 - SENSORS \u9884\u9009 \u9884\u9009\u8d5b \u8d5b\u9053 \u6392\u884c \u6392\u884c\u699c 2.0 - MAP \u9884\u9009 \u9884\u9009\u8d5b \u8d5b\u9053 \u6ce8\u610f \u5728 \u6d89\u53ca \u6392\u884c \u6392\u884c\u699c \u7684 \u5e74\u5ea6 \u6bd4\u8d5b \u671f\u95f4 \uff0c \u67d0\u4e9b \u8d5b\u9053 \u53ef\u80fd \u4f1a \u6682\u65f6 \u5173\u95ed \u3002 \u8bf7 \u5bc6\u5207 \u5173\u6ce8 \u6392\u884c \u6392\u884c\u699c \u7f51\u7ad9 \u548c Discord \u8bba\u575b \uff0c \u4e86\u89e3 \u8d5b\u9053 \u4f55\u65f6 \u53ef\u80fd \u5173\u95ed \u63d0\u4ea4 \u3002 \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4ece \u4ee5\u4e0b \u90e8\u5206 \u590d\u5236 \u5e76 \u7c98\u8d34 \uff0c \u4ee5 \u786e\u4fdd \u63d0\u4ea4 \u5230 \u6b63\u786e \u7684 \u8f68\u9053 \uff0c \u5e76 \u5c06 < image > \u548c \u66ff\u6362 < tag > \u4e3a \u9002\u5408 \u60a8 \u7684 Docker \u6620\u50cf \u7684 \u503c \uff1a \u8981 \u63d0\u4ea4 \u5230 \u6bcf\u4e2a \u8f68\u8ff9 \u7684 CLI \u547d\u4ee4 \u3002","title":"\u63d0\u4ea4 \u60a8 \u7684 \u610f\u89c1"},{"location":"leaderboard_submit/#_4","text":"\u521b\u5efa \u63d0\u4ea4 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u8f6c\u5230 \u6b64 My Submissions \u90e8\u5206 \u67e5\u770b \u6240\u6709 \u63d0\u4ea4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u72b6\u6001 \u663e\u793a \u63d0\u4ea4 \u72b6\u6001 \u7684 \u9ad8\u7ea7 \u8bf4\u660e \u3002 \u6240\u6709 \u63d0\u4ea4 \u90fd \u4ece \u72b6\u6001 \u5f00\u59cb \uff0c \u4e00\u65e6 \u5728 \u540e \u7aef \u5f00\u59cb \u8fd0\u884c \u5f00\u59cb\u8fd0\u884c \uff0c SUBMITTED \u5c31 \u4f1a \u66f4 \u6539\u4e3a \u3002 \u5b8c\u6210 \u540e \uff0c \u5982\u679c \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u5b83 \u5c06 \u66f4 \u6539\u4e3a PARTIALLY _ EVALUATED \uff0c \u6216\u8005 \u5982\u679c \u53d1\u751f \u751f\u610f \u610f\u5916 \u53d1\u751f\u610f\u5916 \u60c5\u51b5 \uff0c \u5219 \u66f4 \u6539\u4e3a FINISHEDFAILED \u3002 \u5931\u8d25 \u7684 \u63d0\u4ea4 \u53ef\u4ee5 \u6062\u590d \uff0c \u8fd9 \u5c06 \u7ee7\u7eed \u63d0\u4ea4 \uff0c \u800c \u4e0d \u91cd\u590d \u5df2\u7ecf \u5b8c\u6210 \u7684 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u5c06 \u5177\u6709 RESUMED \u72b6\u6001 \uff0c \u800c \u4e0d\u662f SUBMITTED \u76f4\u5230 \u5b83\u4eec \u5f00\u59cb \u8fd0\u884c \u5f00\u59cb\u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u968f\u65f6 \u53d6\u6d88 \u63d0\u4ea4 \u3001 \u505c\u6b62 \u63d0\u4ea4 \u5e76 \u5c06 \u5176 \u72b6\u6001 \u66f4 \u6539\u4e3a CANCELLED \u3002 \u4efb\u4f55 \u63d0\u4ea4 \u90fd \u53ef\u4ee5 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4f7f\u7528 \u76f8\u540c \u63d0\u4ea4 \u7684 docker \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u63d0\u4ea4 \u3002 \u5982\u679c \u63d0\u4ea4 \u6b63\u5728 \u8fd0\u884c \uff0c \u5b83 \u5c06 \u81ea\u52a8 \u53d6\u6d88 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u63d0\u4ea4 \u7684 \u7ed3\u679c \uff0c \u8bf7 \u8bbf\u95ee Stdout file \u63d0\u4f9b \u7684 \u94fe\u63a5 \u3002 \u8be5 \u6587\u4ef6 \u5305\u542b \u6709\u5173 \u63d0\u4ea4 \u7684 \u4e00\u4e9b \u4e00\u822c \u4fe1\u606f \uff0c \u5305\u62ec \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u8def\u7ebf \u8fdb\u5ea6 \u548c \u6700\u7ec8 \u7ed3\u679c \uff0c \u4ee5\u53ca \u6bcf\u6761 \u8def\u7ebf \u7684 \u72b6\u6001 \u548c \u6027\u80fd \u7684 \u672f\u8bed \u672f\u8bed\u8868 \u3002 \u6700\u540e \uff0c \u5982\u679c \u60a8 \u60f3 \u516c\u5f00 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \uff0c \u8bf7 \u9009\u4e2d \u8be5 Show on Leaderboard \u6846 \uff0c \u5b83 \u73b0\u5728 \u5c06 \u663e\u793a \u5728 Leaderboard \u6311\u6218 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u968f\u610f \u7f16\u8f91 \u63d0\u4ea4 \u5185\u5bb9 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u65b9\u6cd5 \u540d\u79f0 \u3001 \u63cf\u8ff0 \u4ee5\u53ca \u9879\u76ee \u6216 \u51fa\u7248 \u51fa\u7248\u7269 \u7684 URL \u7684 \u4efb\u4f55 \u4fe1\u606f \u3002","title":"\u68c0\u67e5 \u60a8 \u63d0\u4ea4 \u7684 \u6570\u636e"},{"location":"libcarla/","text":"LibCarla \u6240\u6709 \u6a21\u5757 \u4e4b\u95f4 \u7684 \u8c03\u7528 \u5173\u7cfb \u56fe \uff1a \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5e93 \u5305\u62ec \uff1a simplify \uff08 \u4f7f\u7528 \u4e8c\u6b21 \u66f2\u9762 \u4e8c\u6b21\u66f2\u9762 \u51cf\u5c11 \u7f51\u683c \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3001 pugixml \uff08 \u8f7b\u91cf \u91cf\u7ea7 \u8f7b\u91cf\u7ea7 \u7684 C++ XML \u5904\u7406 \u5e93 \uff09 \u3001 odrSpiral \uff08 OpenDrive \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u8ba1\u7b97 \u87ba\u65cb \u7684 \u65b9\u6cd5 \uff09 \u3001 moodycamel \uff08 C++ 11 \u5b9e\u73b0 \u7684 \u4e00\u4e2a \u4e00\u4e2a\u591a \u751f\u4ea7 \u4ea7\u8005 \u751f\u4ea7\u8005 \u3001 \u591a \u6d88\u8d39 \u6d88\u8d39\u8005 \u7684 \u65e0\u9501 \u961f\u5217 \uff09 \u3001 marchingcube \uff08 \u4ece \u7ed9\u5b9a \u7684 \u6709 \u7b26\u53f7 \u8ddd\u79bb \u51fd\u6570 \u91cd\u5efa \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \uff09 \u3002 \u7b14\u8bb0 Marching Cubes ( \u4e09\u7ef4 \u89c4\u5219 \u6570\u636e \u573a \u7b49\u503c \u9762 \u751f\u6210 \u3001 \u4ece \u4e09\u7ef4 \u4f53\u7d20 \u4e2d \u63d0\u53d6 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c ) \u3002 \u6709 \u7b26\u53f7 \u8ddd\u79bb \u51fd \uff08 Signed Distance Function , SDF \uff09 , \u6307 \u7684 \u662f \u7ed9\u5b9a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u5750\u6807 , \u8fd4\u56de \u8fd9\u4e2a \u70b9 \u4e0e \u67d0 \u4e00\u9762 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u3002 \u5982\u679c \u8fd9\u4e2a \u8ddd\u79bb \u662f \u8d1f\u6570 , \u5219 \u8bf4\u660e \u5728 \u9762\u5185 , \u662f \u6b63\u6570 \u5219 \u8bf4\u660e \u5728 \u9762\u5916 , \u5982\u679c \u662f 0 , \u5219 \u521a\u597d \u5728 \u9762\u4e0a \uff0c SDF \u7684 signed \u5c31\u662f \u7531\u6b64 \u800c\u6765 \u7531\u6b64\u800c\u6765 . Visual Studio \u5de5\u7a0b \u6240\u5728 \u6240\u5728\u5730 \u76ee\u5f55 \u4e3a \uff1a Build \\ libcarla - visualstudio \\ \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5404\u4e2a \u6a21\u5757 \u4e4b\u95f4 \u7684 \u8c03\u7528 \u5173\u7cfb \u56fe \uff1a \u9ed1\u8272 \u6846 \u8868\u660e \u5f53\u524d \u663e\u793a \u7684 \u662f \u7c7b \u6587\u6863 \u3002 \u7ea2\u8272 \u8fb9\u7ebf \u7684 \u65b9\u6846 \u8868\u793a \u6709 \u6587\u6863 \u7684 \u7ed3\u6784 \u4f53\u6216\u7c7b \uff0c \u8be5\u7c7b \u672a \u5c55\u793a \u5168\u90e8 \u7684 \u7ee7\u627f / \u5305\u542b \u5173\u7cfb \u3002 \u5b9e\u5fc3 \u7bad\u5934 \u6307\u793a \u516c\u6709 \u7ee7\u627f \u3002 \u7f16\u8bd1 \u540e \u7684 \u5b89\u88c5 \u76ee\u5f55 \u4f4d\u4e8e \uff1a PythonAPI \\ carla \\ dependencies \\ \u3002 CMakeLists . txt file GLOB \u547d\u4ee4 \u7528\u4e8e \u5c06 \u6307\u5b9a \u76ee\u5f55 \u4e0b \u7684 \u6240\u6709 \u6587\u4ef6 \u5339\u914d \u5230 \u4e00\u4e2a \u53d8\u91cf \u4e2d \u3002 install \u7528\u4e8e \u6307\u5b9a \u5728 \u5b89\u88c5 \u65f6 \u8fd0\u884c \u7684 \u89c4\u5219 \u3002 DESTINATION \u5b9a\u4e49 \u4e86 \u5b89\u88c5 \u7684 \u8def\u5f84 \uff0c \u4f7f\u7528 CMAKE _ INSTALL _ PREFIX \u6765 \u5b9a\u4e49 \u5b89\u88c5 \u8def\u5f84 \uff08 \u5728 Util \\ BuildTools \\ BuildLibCarla . bat \u4e2d \u7684 - DCMAKE _ INSTALL _ PREFIX \u4e2d \u5b9a\u4e49 \uff0c \u5373 PythonAPI \\ carla \\ dependencies \\ \uff09 \uff0c \u5c31\u8981 \u5199\u6210 \u76f8\u5bf9 \u8def\u5f84 \u76f8\u5bf9\u8def\u5f84 \uff0c \u90a3\u4e48 \u5b89\u88c5 \u540e \u7684 \u8def\u5f84 \u5c31\u662f $ { CMAKE _ INSTALL _ PREFIX } / \u3002 \u5c06 \u5bf9\u5e94 \u76ee\u5f55 \u4e0b \u7684 . cpp \u548c . h \u6587\u4ef6 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u5b89\u88c5 \u8def\u5f84 \u4e0b \u3002 add _ library \uff1a \u7528\u4e8e \u5411 \u9879\u76ee \u6dfb\u52a0 \u4e00\u4e2a \u5e93 \u6587\u4ef6 , \u5e76 \u5b9a\u4e49 \u5176 \u7c7b\u578b ( \u9759\u6001 \u5e93 STATIC \u6216 \u5171\u4eab \u5e93 ) \u3002 carla _ client $ { carla _ target _ postfix } _ debug \u5bf9\u5e94 \uff1a carla _ client _ debug . lib target _ include _ directories \uff1a \u6307\u5b9a \u76ee\u6807 \uff08 exe \u6216\u8005 so \u6587\u4ef6 \uff09 \u9700\u8981 \u5305\u542b \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u8def\u5f84 target _ link _ libraries \uff1a \u6307\u5b9a \u76ee\u6807 \uff08 exe \u6216\u8005 so \u6587\u4ef6 \uff09 \u9700\u8981 \u5305\u542b \u7684 \u5e93 set _ target _ properties \uff1a \u53ef\u4ee5 \u8bbe\u7f6e \u7f16\u8bd1 \u6807\u8bb0 \uff08 \u533a\u5206 \u8c03\u8bd5 \u8fd8\u662f \u53d1\u5e03 \uff09 \u670d\u52a1 \u670d\u52a1\u7aef \u7f16\u8bd1 \u540e \u7684 \u5b89\u88c5 \u76ee\u5f55 \u4f4d\u4e8e \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ \u3002 CMakeLists . txt \u53c2\u8003 C++ \u6587\u6863 Doxygen Doxygen v1.63 \u4e2d\u6587 \u624b\u518c","title":"LibCarla"},{"location":"libcarla/#libcarla","text":"\u6240\u6709 \u6a21\u5757 \u4e4b\u95f4 \u7684 \u8c03\u7528 \u5173\u7cfb \u56fe \uff1a \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5e93 \u5305\u62ec \uff1a simplify \uff08 \u4f7f\u7528 \u4e8c\u6b21 \u66f2\u9762 \u4e8c\u6b21\u66f2\u9762 \u51cf\u5c11 \u7f51\u683c \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3001 pugixml \uff08 \u8f7b\u91cf \u91cf\u7ea7 \u8f7b\u91cf\u7ea7 \u7684 C++ XML \u5904\u7406 \u5e93 \uff09 \u3001 odrSpiral \uff08 OpenDrive \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u8ba1\u7b97 \u87ba\u65cb \u7684 \u65b9\u6cd5 \uff09 \u3001 moodycamel \uff08 C++ 11 \u5b9e\u73b0 \u7684 \u4e00\u4e2a \u4e00\u4e2a\u591a \u751f\u4ea7 \u4ea7\u8005 \u751f\u4ea7\u8005 \u3001 \u591a \u6d88\u8d39 \u6d88\u8d39\u8005 \u7684 \u65e0\u9501 \u961f\u5217 \uff09 \u3001 marchingcube \uff08 \u4ece \u7ed9\u5b9a \u7684 \u6709 \u7b26\u53f7 \u8ddd\u79bb \u51fd\u6570 \u91cd\u5efa \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \uff09 \u3002 \u7b14\u8bb0 Marching Cubes ( \u4e09\u7ef4 \u89c4\u5219 \u6570\u636e \u573a \u7b49\u503c \u9762 \u751f\u6210 \u3001 \u4ece \u4e09\u7ef4 \u4f53\u7d20 \u4e2d \u63d0\u53d6 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c ) \u3002 \u6709 \u7b26\u53f7 \u8ddd\u79bb \u51fd \uff08 Signed Distance Function , SDF \uff09 , \u6307 \u7684 \u662f \u7ed9\u5b9a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u5750\u6807 , \u8fd4\u56de \u8fd9\u4e2a \u70b9 \u4e0e \u67d0 \u4e00\u9762 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u3002 \u5982\u679c \u8fd9\u4e2a \u8ddd\u79bb \u662f \u8d1f\u6570 , \u5219 \u8bf4\u660e \u5728 \u9762\u5185 , \u662f \u6b63\u6570 \u5219 \u8bf4\u660e \u5728 \u9762\u5916 , \u5982\u679c \u662f 0 , \u5219 \u521a\u597d \u5728 \u9762\u4e0a \uff0c SDF \u7684 signed \u5c31\u662f \u7531\u6b64 \u800c\u6765 \u7531\u6b64\u800c\u6765 . Visual Studio \u5de5\u7a0b \u6240\u5728 \u6240\u5728\u5730 \u76ee\u5f55 \u4e3a \uff1a Build \\ libcarla - visualstudio \\ \u3002","title":"LibCarla"},{"location":"libcarla/#_1","text":"\u5404\u4e2a \u6a21\u5757 \u4e4b\u95f4 \u7684 \u8c03\u7528 \u5173\u7cfb \u56fe \uff1a \u9ed1\u8272 \u6846 \u8868\u660e \u5f53\u524d \u663e\u793a \u7684 \u662f \u7c7b \u6587\u6863 \u3002 \u7ea2\u8272 \u8fb9\u7ebf \u7684 \u65b9\u6846 \u8868\u793a \u6709 \u6587\u6863 \u7684 \u7ed3\u6784 \u4f53\u6216\u7c7b \uff0c \u8be5\u7c7b \u672a \u5c55\u793a \u5168\u90e8 \u7684 \u7ee7\u627f / \u5305\u542b \u5173\u7cfb \u3002 \u5b9e\u5fc3 \u7bad\u5934 \u6307\u793a \u516c\u6709 \u7ee7\u627f \u3002 \u7f16\u8bd1 \u540e \u7684 \u5b89\u88c5 \u76ee\u5f55 \u4f4d\u4e8e \uff1a PythonAPI \\ carla \\ dependencies \\ \u3002","title":"\u5ba2\u6237\u7aef"},{"location":"libcarla/#cmakeliststxt","text":"file GLOB \u547d\u4ee4 \u7528\u4e8e \u5c06 \u6307\u5b9a \u76ee\u5f55 \u4e0b \u7684 \u6240\u6709 \u6587\u4ef6 \u5339\u914d \u5230 \u4e00\u4e2a \u53d8\u91cf \u4e2d \u3002 install \u7528\u4e8e \u6307\u5b9a \u5728 \u5b89\u88c5 \u65f6 \u8fd0\u884c \u7684 \u89c4\u5219 \u3002 DESTINATION \u5b9a\u4e49 \u4e86 \u5b89\u88c5 \u7684 \u8def\u5f84 \uff0c \u4f7f\u7528 CMAKE _ INSTALL _ PREFIX \u6765 \u5b9a\u4e49 \u5b89\u88c5 \u8def\u5f84 \uff08 \u5728 Util \\ BuildTools \\ BuildLibCarla . bat \u4e2d \u7684 - DCMAKE _ INSTALL _ PREFIX \u4e2d \u5b9a\u4e49 \uff0c \u5373 PythonAPI \\ carla \\ dependencies \\ \uff09 \uff0c \u5c31\u8981 \u5199\u6210 \u76f8\u5bf9 \u8def\u5f84 \u76f8\u5bf9\u8def\u5f84 \uff0c \u90a3\u4e48 \u5b89\u88c5 \u540e \u7684 \u8def\u5f84 \u5c31\u662f $ { CMAKE _ INSTALL _ PREFIX } / \u3002 \u5c06 \u5bf9\u5e94 \u76ee\u5f55 \u4e0b \u7684 . cpp \u548c . h \u6587\u4ef6 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u5b89\u88c5 \u8def\u5f84 \u4e0b \u3002 add _ library \uff1a \u7528\u4e8e \u5411 \u9879\u76ee \u6dfb\u52a0 \u4e00\u4e2a \u5e93 \u6587\u4ef6 , \u5e76 \u5b9a\u4e49 \u5176 \u7c7b\u578b ( \u9759\u6001 \u5e93 STATIC \u6216 \u5171\u4eab \u5e93 ) \u3002 carla _ client $ { carla _ target _ postfix } _ debug \u5bf9\u5e94 \uff1a carla _ client _ debug . lib target _ include _ directories \uff1a \u6307\u5b9a \u76ee\u6807 \uff08 exe \u6216\u8005 so \u6587\u4ef6 \uff09 \u9700\u8981 \u5305\u542b \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u8def\u5f84 target _ link _ libraries \uff1a \u6307\u5b9a \u76ee\u6807 \uff08 exe \u6216\u8005 so \u6587\u4ef6 \uff09 \u9700\u8981 \u5305\u542b \u7684 \u5e93 set _ target _ properties \uff1a \u53ef\u4ee5 \u8bbe\u7f6e \u7f16\u8bd1 \u6807\u8bb0 \uff08 \u533a\u5206 \u8c03\u8bd5 \u8fd8\u662f \u53d1\u5e03 \uff09","title":"CMakeLists . txt"},{"location":"libcarla/#_2","text":"\u7f16\u8bd1 \u540e \u7684 \u5b89\u88c5 \u76ee\u5f55 \u4f4d\u4e8e \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ \u3002","title":"\u670d\u52a1\u7aef"},{"location":"libcarla/#cmakeliststxt_1","text":"","title":"CMakeLists . txt"},{"location":"libcarla/#_3","text":"C++ \u6587\u6863 Doxygen Doxygen v1.63 \u4e2d\u6587 \u624b\u518c","title":"\u53c2\u8003"},{"location":"map_customization/","text":"\u5730\u56fe \u5b9a\u5236 \u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 \u521b\u5efa \u65b0 \u5730\u56fe \u6f0f\u6d1e \u4f7f\u7528 Carla \u5de5\u5177 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u5730\u56fe \u4f1a \u5bfc\u81f4 UE4.17 . 2 \u5d29\u6e83 \uff08 \u95ee\u9898 # 99 \uff09 \uff0c \u672c \u6307\u5357 \u5efa\u8bae \u590d\u5236 \u73b0\u6709 \u5173\u5361 \uff0c \u800c \u4e0d\u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u5730\u56fe \u3002 \u8981\u6c42 \u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u68c0\u51fa \u5e76 \u6784\u5efa Carla \u3002 \u521b\u5efa \u590d\u5236 \u73b0\u6709 \u5730\u56fe \u4ece \u5730\u56fe \u4e0a \u5220\u9664 \u6240\u6709 \u4e0d \u9700\u8981 \u7684 \u5185\u5bb9 \u4fdd\u7559 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u201c Lighting \u201d \u3001 \u201c AtmosphericFog \u201d \u3001 \u201c PostProcessVol \u201d \u548c \u201c CarlaMapGenerator \u201d \uff0c \u8fd9 \u5c06 \u4f7f \u6c14\u5019 \u4fdd\u6301 \u9884\u671f \u8fd0\u884c \uff0c \u5e76 \u4fdd\u5b58 \u540e\u671f \u5904\u7406 \u3002 \u5c06 \u7a7a\u767d \u84dd\u56fe \u4fdd\u7559 \u4e3a \u6a21\u677f \u5e76 \u5728 \u5f00\u59cb \u586b\u5145 \u4e4b\u524d \u590d\u5236 \u5b83 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u5728 CarlaMapGenerator \u4e2d \uff0c \u6709 \u4e00\u4e2a \u5b57 \u6bb5 \u201c \u79cd\u5b50 \u201d \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u66f4\u6539 \u8be5 \u79cd\u5b50 \u5e76 \u5355\u51fb \u201c \u89e6\u53d1 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u751f\u6210 \u201d \u6765 \u66f4\u6539 \u5730\u56fe \u3002 \u8fd8 \u5e94\u9009 \u4e2d \u201c \u5c06 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u201d \u3002 \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u79cd\u5b50 \uff0c \u76f4\u5230 \u83b7\u5f97 \u6ee1\u610f \u7684 \u5730\u56fe \u3002 \u6b64\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u60f3\u8981 \u751f\u6210 \u6c7d\u8f66 \u7684 \u5730\u65b9 \u653e\u7f6e \u65b0 \u7684 PlayerStarts \u3002 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u5df2\u7ecf \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \uff0c \u4f46 \u6c7d\u8f66 \u4e0d\u4f1a \u968f\u673a \u884c\u52a8 \u3002 \u8f66\u8f86 \u5c06 \u9075\u5faa RoadMapGenerator \u7ed9\u51fa \u7684 \u6307\u4ee4 \u3002 \u5b83\u4eec \u5728 \u76f4 \u8def\u4e0a \u4f1a \u5f88 \u5bb9\u6613 \u5730 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u4f46 \u5728 \u8fdb\u5165 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u65f6\u5219 \u4e0d\u4f1a \u90a3\u4e48 \u5bb9\u6613 \uff1a \uff08 \u8fd9\u662f \u9053\u8def \u5411 \u8f66\u8f86 \u53d1\u51fa \u7684 \u6307\u4ee4 \u7684 \u8c03\u8bd5 \u89c6\u56fe \u3002 \u5b83\u4eec \u5c06 \u59cb\u7ec8 \u9075\u5faa \u7eff\u8272 \u7bad\u5934 \uff0c \u767d\u70b9 \u662f \u4e00\u6761 \u6216 \u591a\u6761 \u8def\u7ebf \u4e4b\u95f4 \u7684 \u5171\u4eab \u70b9 \uff0c \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u547d\u4ee4 \u8f66\u8f86 \u7ee7\u7eed \u76f4\u884c \uff1b \u9ed1\u70b9 \u504f\u79bb \u9053\u8def \uff0c \u8f66\u8f86 \u6ca1\u6709 \u5f97\u5230 \u4efb\u4f55 \u6307\u4ee4 \u5e76 \u5411 \u5de6 \u884c\u9a76 \uff0c \u8bd5\u56fe \u56de\u5230 \u9053\u8def \u4e0a \uff09 \u8981 \u83b7\u5f97 \u968f\u673a \u884c\u4e3a \uff0c \u60a8 \u5fc5\u987b \u653e\u7f6e IntersectionEntrances \uff0c \u8fd9 \u5c06 \u8ba9 \u60a8 \u91cd\u65b0 \u5b9a\u4e49 \u8f66\u8f86 \u884c\u9a76 \u7684 \u65b9\u5411 \uff0c \u8986\u76d6 \u9053\u8def \u5730\u56fe \u7ed9\u51fa \u7684 \u65b9\u5411 \uff08 \u76f4\u5230 \u5b83\u4eec \u5b8c\u6210 \u7ed9\u5b9a \u7684 \u987a\u5e8f \uff09 \u3002 \uff08 \u53c2\u89c1 \u4e24\u4e2a \u793a\u4f8b \u57ce\u9547 \uff0c \u4e86\u89e3 \u5176 \u5177\u4f53 \u5de5\u4f5c \u539f\u7406 \uff09 \u3002 0.7 . 1 \u7248\u672c \u4e4b\u524d \uff1a \u5bf9\u4e8e \u6bcf\u4e2a \u5165\u53e3 \uff0c \u4f60 \u5fc5\u987b \u521b\u5efa \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7a7a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5b83\u4eec \u5c06 \u4f5c\u4e3a \u5f15\u5bfc \u6c7d\u8f66 \u901a\u8fc7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u8def\u5f84 \u70b9 \uff1b \u7136\u540e \uff0c \u4f60 \u5fc5\u987b \u5c06 \u76f8\u5e94 \u7684 Actor \u5206\u914d \u7ed9 \u6bcf\u6761 \u8def\u5f84 0.7 . 1 \u7248 \u4e4b\u540e \uff1a \u6bcf\u4e2a IntersectionEntrance \u90fd \u6709 \u4e00\u4e2a \u540d\u4e3a routes \u7684 \u6570\u7ec4 \uff0c \u5411 \u5176\u4e2d \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u4f1a \u5728 \u4e16\u754c \u4e2d \u521b\u5efa \u4e00\u4e2a \u53ef \u7f16\u8f91 \u7684 \u6837\u6761 \u7ebf \uff0c \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \u4f4d\u4e8e IntersectionEntrance \u4e0a \uff08 \u60a8 \u53ef\u80fd \u9700\u8981 \u9009\u62e9 \u53e6 \u4e00\u4e2a \u5bf9\u8c61 \u624d\u80fd \u770b\u5230 \u5b83 \uff09 \u6b64 \u6837\u6761 \u7ebf \u5b9a\u4e49 \u4e86 \u4efb\u4f55 \u8f66\u8f86 \u8fdb\u5165 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u65f6 \u53ef\u80fd \u91c7\u53d6 \u7684 \u8def\u7ebf \uff08 \u5c31 \u50cf \u4e4b\u524d \u7684 Empty \u6f14\u5458 \u6240 \u505a \u7684 \u90a3\u6837 \uff09 \u60a8 \u53ef\u4ee5 \u50cf \u7f16\u8f91 \u4efb\u4f55 \u865a\u5e7b \u6837\u6761 \u7ebf \u4e00\u6837 \u914d\u7f6e \u6b64 \u8def\u7ebf \u3002 \u6bcf\u6761 \u8def\u7ebf \u5c06 \u5728 \u4ee5\u4e0b \u5b57\u6bb5 \u4e2d \u521b\u5efa \u4e00\u4e2a \u5143\u7d20 \uff1a \u201c \u6982\u7387 \u201d \u6b64 \u6570\u7ec4 \u4e2d \u7684 \u6bcf\u4e2a \u6570\u5b57 \u90fd \u5b9a\u4e49 \u4e86 \u4efb\u4f55 \u8f66\u8f86 \u91c7\u53d6 \u76f8\u5e94 \u91c7\u53d6\u76f8\u5e94 \u8def\u7ebf \u7684 \u51e0\u7387 \u3002 \u8981 \u6539\u53d8 \u6c7d\u8f66 \u7684 \u901f\u5ea6 \uff0c \u8bf7 \u4f7f\u7528 \u901f\u5ea6 \u9650\u5236 \u9650\u5236\u5668 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8d77\u6765 \u5f88 \u7b80\u5355 \u3002 \uff08 \u786e\u4fdd \u9650\u5236 \u8f6c\u5f2f \u901f\u5ea6 \uff0c \u5426\u5219 \u6c7d\u8f66 \u4f1a \u8bd5\u56fe \u4ee5 \u5168\u901f \u8f6c\u5f2f \uff0c \u4f46 \u65e0\u6cd5 \u6210\u529f \uff09 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9700\u8981 \u6309\u7167 \u811a\u672c \u6765 \u907f\u514d \u4ea4\u901a \u901a\u4e8b \u4e8b\u6545 \u4ea4\u901a\u4e8b\u6545 \u3002 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u6bcf\u6761 \u8857\u9053 \u90fd \u5e94\u8be5 \u6709 \u81ea\u5df1 \u7684 \u7eff\u706f \u8f6c\u5f2f \uff0c \u800c \u5176\u4ed6 \u8857\u9053 \u5219 \u4e0d \u5e94\u6709 \u7eff\u706f \u3002 \u7136\u540e \u4f60 \u5c31 \u53ef\u4ee5 \u5728 \u6574\u4e2a \u4e16\u754c \u4e2d \u5e03\u6ee1 \u98ce\u666f \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u591a\u5c42 \u5efa\u7b51 \u591a\u5c42\u5efa\u7b51 \u6b64 \u84dd\u56fe \u7684 \u76ee\u7684 \u662f \u4f7f \u91cd\u590d \u548c \u6539\u53d8 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u4e00\u4e9b \u3002 \u63d0\u4f9b \u4e00\u4e2a \u57fa\u7840 \u3001 \u4e00\u4e2a \u4e2d\u5c42 \u548c \u4e00\u4e2a \u5c4b\u9876 \uff1b \u6b64 \u84dd\u56fe \u5c06 \u4e2d\u5c42 \u91cd\u590d \u5230 \u6240 \u9700 \u7684 \u5546\u5e97 \u6570\u91cf \uff0c \u5e76 \u5728 \u6ee1\u8db3 \u67d0\u4e9b \u6761\u4ef6 \u7684 \u60c5\u51b5 \u4e0b \u5c06 \u5176 \u4e0e \u6700\u540e \u4e00\u5c42 \u53e0\u52a0 \uff1a \u6240\u6709 \u6a21\u578b \u67a2\u8f74 \u90fd \u5e94 \u4f4d\u4e8e \u7279\u5b9a \u7f51\u683c \u7684 \u5e95\u90e8 \u4e2d\u5fc3 \u3002 Al \u6a21\u578b \u5fc5\u987b \u51c6\u786e \u5730 \u5728 \u91cd\u590d \u53d1\u751f \u7684 \u5730\u65b9 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 \u8be5 \u84dd\u56fe \u7531 \u4ee5\u4e0b 6 \u4e2a \u7279\u5b9a \u53c2\u6570 \u63a7\u5236 \uff1a GroundFloor \uff1a \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5e95\u90e8 \u7684 \u7f51\u683c \u3002 Floor \uff1a \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u91cd\u590d \u7684 \u7f51\u683c \u3002 Roof \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9876\u90e8 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 FloorNumber \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 FloorHeightOffset \uff1a \u5782\u76f4 \u8c03\u6574 \u6bcf \u5c42\u697c \u7684 \u4f4d\u7f6e \u3002 RoofOffset \uff1a \u5782\u76f4 \u8c03\u6574 \u5c4b\u9876 \u7684 \u4f4d\u7f6e \u3002 \u4e00\u65e6 \u5c06 \u8be5 \u84dd\u56fe \u653e\u7f6e \u5728 \u4e16\u754c \u4e2d \uff0c \u6240\u6709 \u8fd9\u4e9b \u53c2\u6570 \u90fd \u53ef\u4ee5 \u88ab \u4fee\u6539 \u3002 SplinemeshRepeater \u6f0f\u6d1e \u53c2\u89c1 # 35 SplineMeshRepeater \u4e22\u5931 \u5176 \u78b0\u649e \u4f53 \u7f51\u683c \u6807\u51c6 \u7528\u9014 \uff1a SplineMeshRepeater \u201c Content / Blueprints / SplineMeshRepeater \u201d \u662f Carla Project \u4e2d \u5305\u542b \u7684 \u4e00\u4e2a \u5de5\u5177 \uff0c \u7528\u4e8e \u5e2e\u52a9 \u6784\u5efa \u57ce\u5e02 \u73af\u5883 \uff1b \u5b83 \u6cbf\u7740 \u6837 \u6761\u7ebf \uff08 \u865a\u5e7b \u7ec4\u4ef6 \uff09 \u91cd\u590d \u548c \u5bf9\u9f50 \u7279\u5b9a \u9009\u5b9a \u7684 \u7f51\u683c \u3002 \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u6784\u5efa \u901a\u5e38 \u5e73\u94fa \u548c \u91cd\u590d \u7684 \u7ed3\u6784 \uff0c \u5982 \u5899\u58c1 \u3001 \u9053\u8def \u3001 \u6865\u6881 \u3001 \u6805\u680f \u2026 \u2026 \u4e00\u65e6 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u653e\u5165 \u4e16\u754c \uff0c \u5c31 \u53ef\u4ee5 \u4fee\u6539 \u6837\u6761 \u7ebf \uff0c \u4ee5\u4fbf \u5bf9\u8c61 \u83b7\u5f97 \u6240 \u9700 \u7684 \u5f62\u5f0f \u3002 \u5b9a\u4e49 \u6837\u6761 \u7ebf \u7684 \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u751f\u6210 \u4e00\u4e2a \u65b0 \u7684 \u56fe\u5757 \uff0c \u56e0\u6b64 \u6837\u6761 \u7ebf \u7684 \u70b9 \u8d8a \u591a \uff0c \u5b83 \u5c31 \u8d8a \u660e\u786e \uff0c \u4f46 \u5bf9 \u4e16\u754c \u7684 \u8d1f\u62c5 \u4e5f \u8d8a \u5927 \u3002 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7531 \u4ee5\u4e0b \u53c2\u6570 \u5b9a\u4e49 \uff1a \u9759\u6001 \u7f51\u683c \u7269\u4f53 ( StaticMesh ) \uff1a \u6cbf \u6837\u6761 \u7ebf \u91cd\u590d \u7684 \u7f51\u683c \u7269\u4f53 \u3002 ForWardAxis \uff1a \u6539\u53d8 \u7f51\u683c \u8f74\u4ee5 \u4e0e \u6837\u6761 \u7ebf \u5bf9\u9f50 \u3002 Material \uff1a \u8986\u76d6 \u7f51\u683c \u7684 \u9ed8\u8ba4 \u6750\u8d28 \u3002 Collision Enabled \uff1a \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 Gap distance \uff1a \u5728 \u6bcf\u4e2a \u91cd\u590d \u7f51\u683c \u4e4b\u95f4 \u653e\u7f6e \u4e00\u4e2a \u95f4\u9699 \uff0c \u9002\u7528 \u4e8e \u91cd\u590d \u7684 \u975e \u8fde\u7eed \u5899\u58c1 \uff1a \u704c\u6728 \u94fe \u3001 \u62a4\u67f1 \u2026 \u2026 \uff08 \u6700\u540e \u4e09\u4e2a \u53d8\u91cf \u662f \u9488\u5bf9 \u4e0b \u4e00\u70b9 \u4e2d\u8981 \u5b9a\u4e49 \u7684 \u4e00\u4e9b \u7279\u5b9a \u8d44\u4ea7 \u800c\u5b9a \u7684 \uff09 \u521b\u5efa \u4e0e \u6b64 \u7ec4\u4ef6 \u517c\u5bb9 \u7684 \u8d44\u4ea7 \u7684 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u662f \uff0c \u6240\u6709 \u7f51\u683c \u7684 \u67a2\u8f74 \u90fd \u653e\u7f6e \u5728 \u91cd\u590d \u5f00\u59cb \u7684 \u6700\u4f4e \u4f4e\u70b9 \u6700\u4f4e\u70b9 \uff0c \u5176\u4f59 \u7f51\u683c \u6307\u5411 \u6b63 \u65b9\u5411 \uff08 \u6700\u597d \u662f X \u8f74 \uff09 \u7279\u5b9a \u5899\u58c1 \uff08 \u52a8\u6001 \u6750\u8d28 \uff09 \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u201c Content / Static / Walls \u201d \u4e2d \u5305\u542b \u4e00\u4e9b \u7279\u5b9a \u8d44\u4ea7 \uff0c \u8fd9\u4e9b \u8d44\u4ea7 \u5c06 \u4e0e \u5177\u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u6b8a \u7279\u6027 \u7684 SplineMeshRepeater \u4e00\u8d77 \u4f7f\u7528 \u3002 \u8fd9\u4e9b \u7f51\u683c \u7684 UV \u7a7a\u95f4 \u53ca\u5176 \u6750\u8d28 \u5bf9\u4e8e \u6240\u6709 \u7f51\u683c \u90fd \u662f \u76f8\u540c \u7684 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u4e92\u6362 \u3002 \u6bcf\u79cd \u6750\u8d28 \u7531 \u4e09\u4e2a \u4e0d\u540c \u7684 \u8868\u9762 \u7ec4\u6210 \uff0c \u6700\u540e \u4e09\u4e2a \u53c2\u6570 \u4f1a \u7a0d\u5fae \u4fee\u6539 \u8fd9\u4e9b \u8868\u9762 \u7684 \u989c\u8272 \uff1a MainMaterialColor \uff1a \u66f4\u6539 \u5899\u58c1 \u7684 \u4e3b\u8981 \u6750\u8d28 DetailsColor \uff1a \u66f4\u6539 \u7ec6\u8282 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 TopWallColor \uff1a \u66f4\u6539 \u5899\u58c1 \u8986\u76d6 \u8986\u76d6\u7269 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 \u8981 \u6dfb\u52a0 \u4ece\u6b64 \u529f\u80fd \u4e2d \u53d7\u76ca \u7684 \u5143\u7d20 \uff0c \u5b58\u5728 GardenWallMask \u6587\u4ef6 \uff0c \u5b83 \u5b9a\u4e49 \u4e86 \u653e\u7f6e \u6750\u6599 \u7684 uv \u7a7a\u95f4 \uff1a \uff08 \u84dd\u8272 \u7a7a\u95f4 \uff1a MainMaterial \uff1b \u7eff\u8272 \u7a7a\u95f4 \uff1a Details \uff1b \u7ea2\u8272 \u7a7a\u95f4 TopWall \uff09 \u3002 \u6750\u8d28 \u4e3b\u63a7 \u4e4b\u95f4 \u662f WallMaster \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4f7f\u7528 \u6b64 \u529f\u80fd \u7684 \u6750\u8d28 \u7684 \u4e3b\u63a7 \u3002 \u5c06 \u521b\u5efa \u6b64 \u6750\u8d28 \u7684 \u5b9e\u4f8b \u5e76 \u6dfb\u52a0 \u76f8\u5e94 \u7684 \u7eb9\u7406 \u3002 \u6b64 \u6750\u8d28 \u5305\u62ec \u4ee5\u4e0b \u53c2\u6570 \uff0c \u4f9b\u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u4fee\u6539 \uff1a Normal Flattener \uff1a \u7a0d\u5fae \u4fee\u6539 \u6cd5\u7ebf \u8d34\u56fe \u503c\u4ee5 \u4f7f \u5176 \u5938\u5927 \u6216 \u5e73\u6574 \u3002 RoughnessCorrection \uff1a \u6539\u53d8 \u7eb9\u7406 \u7ed9\u51fa \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u503c \u3002 \u5176\u4f59 \u53c2\u6570 \u662f \u63a9\u7801 \u7eb9\u7406 \u548c \u989c\u8272 \u6821\u6b63 \uff0c \u8fd9\u4e9b \u53c2\u6570 \u5728 \u672c\u4f8b \u4e2d \u4e0d\u4f1a \u88ab \u4fee\u6539 \uff0c \u4f46 \u5728 \u5c06\u8981 \u53d1\u5e03 \u5230 \u4e16\u754c \u7684 \u84dd\u56fe \u4e2d\u4f1a \u88ab \u4fee\u6539 \u3002 \u5929\u6c14 \u8fd9\u662f \u8d1f\u8d23 \u4fee\u6539 \u6240\u6709 \u7167\u660e \u3001 \u73af\u5883 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u5f71\u54cd \u6c14\u5019 \u5370\u8c61 \u7684 \u4efb\u4f55 \u4f55\u4e8b \u4e8b\u7269 \u4efb\u4f55\u4e8b\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5f53 \u5728 Config . Ini \u4e2d\u672a \u53e6\u884c \u6307\u5b9a \u65f6 \uff0c \u5b83\u4f1a \u968f \u6e38\u620f \u81ea\u52a8 \u8fd0\u884c \uff0c \u4f46 \u6709 \u81ea\u5df1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u6a21\u5f0f \u4e0b \u542f\u52a8 \u4ee5 \u914d\u7f6e \u6c14\u5019 \u6761\u4ef6 \u3002 \u8981 \u5b8c\u5168 \u5de5\u4f5c \uff0c \u5b83 \u5c06 \u9700\u8981 \u4ee5\u4e0b \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e2d \u7684 \u4e00\u4e2a \uff1a SkySphere \u3001 Skylight \u3001 Postprocess Volume \uff08 \u65e0 \u8fb9\u754c \uff09 \u548c Light Source \u5b58\u5728 \u4e8e \u4e16\u754c \u4e2d \u3002 SunPolarAngle \uff1a \u592a\u9633 \u7684 \u6781\u89d2 \uff0c \u51b3\u5b9a \u4e00\u5929 \u7684 \u65f6\u95f4 SunAzimuthAngle \uff1a \u6dfb\u52a0 \u5230 \u5f53\u524d \u7ea7\u522b \u7684 \u592a\u9633 \u4f4d\u7f6e SunBrightness \uff1a \u5929\u7a7a \u76d2\u4e2d \u592a\u9633 \u6e32\u67d3 \u7684 \u4eae\u5ea6 SunDirectionalLightIntensity \uff1a \u592a\u9633 \u9633\u5149 \u592a\u9633\u5149 \u7684 \u5f3a\u5ea6 SunDirectionalLightColor \uff1a \u9633\u5149 \u7684 \u989c\u8272 SunIndirectLightIntensity \uff1a \u4e3b \u53cd\u5c04 \u5149\u53cd\u5c04 \u7684 \u5f3a\u5ea6 CloudOpacity \uff1a \u5929\u7a7a \u76d2 \u4e0a \u4e91 \u6e32\u67d3 \u7684 \u53ef\u89c1 \u6027 HorizontFalloff \uff1a \u786e\u5b9a \u5929\u9876 \u548c \u5730\u5e73 \u5730\u5e73\u7ebf \u989c\u8272 \u4e4b\u95f4 \u7684 \u6e10\u53d8 \u9ad8\u5ea6 ZenithColor \uff1a \u5b9a\u4e49 \u5929\u9876 \u7684 \u989c\u8272 \u3002 HorizonColor \uff1a \u5b9a\u4e49 \u5730\u5e73 \u5730\u5e73\u7ebf \u7684 \u989c\u8272 \u3002 CloudColor \uff1a \u5b9a\u4e49 \u4e91 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 \u3002 OverallSkyColor \uff1a \u5c06 \u5929\u7a7a \u4e2d \u7684 \u6bcf\u4e2a \u989c\u8272 \u5143\u7d20 \u4e58\u4ee5 \u5355\u4e00 \u989c\u8272 \u3002 SkyLightIntensity \uff1a \u4ece \u5929\u7a7a \u53cd\u5c04 \u7684 \u5149 \u7684 \u5f3a\u5ea6 \u3002 SkyLightColor \uff1a \u4ece \u5929\u7a7a \u53cd\u5c04 \u7684 \u5149 \u7684 \u989c\u8272 \u3002 Precipitation \uff1a \u5b9a\u4e49 \u662f\u5426 \u6709 \u964d\u6c34 \u6d3b\u52a8 \u3002 PrecipitationType \uff1a \u6d3b\u8dc3 \u964d\u6c34 \u7684 \u7c7b\u578b \u3002 PrecipitationAmount \uff1a \u6240 \u9009 \u964d\u6c34 \u7684 \u6570\u91cf \u3002 PrecipitationAccumulation \uff1a \u6240 \u9009 \u964d\u6c34 \u7684 \u79ef\u7d2f \u3002 bWind \uff1a \u5b9a\u4e49 \u662f\u5426 \u6709\u98ce \u3002 WindIntensity \uff1a \u5b9a\u4e49 \u98ce \u5f3a\u5ea6 \u3002 WindAngle \uff1a \u5b9a\u4e49 \u98ce\u5411 \u3002 bOverrideCameraPostProcessParameters \uff1a \u5b9a\u4e49 \u662f\u5426 \u8986\u76d6 \u9ed8\u8ba4 \u7684 \u76f8\u673a \u540e\u671f \u5904\u7406 \u3002 CameraPostProcessParameters . AutoExposureMethod \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u7684 \u65b9\u6cd5 \u3002 CameraPostProcessParameters . AutoExposureMinBrightness \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u5728 \u6700\u7ec8 \u56fe\u50cf \u4e2d \u7b97\u4f5c \u7684 \u6700\u5c0f \u4eae\u5ea6 \u3002 CameraPostProcessParameters . AutoExposureMaxBrightness \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u5728 \u6700\u7ec8 \u56fe\u50cf \u4e2d \u7b97\u4f5c \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 CameraPostProcessParameters . AutoExposureBias \uff1a \u4f7f \u6700\u7ec8 \u56fe\u50cf \u53d8\u6697 \u6216 \u53d8\u4eae \uff0c \u8fbe\u5230 \u5b9a\u4e49 \u7684 \u504f\u5dee \u3002 \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u5728 \u9879\u76ee \u4e2d \u4fdd\u5b58 \u4efb\u610f \u6570\u91cf \u7684 \u4e0d\u540c \u914d\u7f6e \uff0c \u5e76 \u901a\u8fc7 \u8bbe\u7f6e \u6587\u4ef6 \u9009\u62e9 \u5728 \u6784\u5efa \u65f6 \u5e94\u7528 \u7684 \u914d\u7f6e \uff1b \u6216\u8005 \u5728 \u6784\u5efa \u7ea7\u522b \u6216 \u6d4b\u8bd5 \u65f6 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5e94\u7528 \u3002","title":"\u5730\u56fe \u5b9a\u5236"},{"location":"map_customization/#_1","text":"\u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002","title":"\u5730\u56fe \u5b9a\u5236"},{"location":"map_customization/#_2","text":"\u6f0f\u6d1e \u4f7f\u7528 Carla \u5de5\u5177 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u5730\u56fe \u4f1a \u5bfc\u81f4 UE4.17 . 2 \u5d29\u6e83 \uff08 \u95ee\u9898 # 99 \uff09 \uff0c \u672c \u6307\u5357 \u5efa\u8bae \u590d\u5236 \u73b0\u6709 \u5173\u5361 \uff0c \u800c \u4e0d\u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u5730\u56fe \u3002","title":"\u521b\u5efa \u65b0 \u5730\u56fe"},{"location":"map_customization/#_3","text":"\u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u68c0\u51fa \u5e76 \u6784\u5efa Carla \u3002","title":"\u8981\u6c42"},{"location":"map_customization/#_4","text":"\u590d\u5236 \u73b0\u6709 \u5730\u56fe \u4ece \u5730\u56fe \u4e0a \u5220\u9664 \u6240\u6709 \u4e0d \u9700\u8981 \u7684 \u5185\u5bb9 \u4fdd\u7559 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u201c Lighting \u201d \u3001 \u201c AtmosphericFog \u201d \u3001 \u201c PostProcessVol \u201d \u548c \u201c CarlaMapGenerator \u201d \uff0c \u8fd9 \u5c06 \u4f7f \u6c14\u5019 \u4fdd\u6301 \u9884\u671f \u8fd0\u884c \uff0c \u5e76 \u4fdd\u5b58 \u540e\u671f \u5904\u7406 \u3002 \u5c06 \u7a7a\u767d \u84dd\u56fe \u4fdd\u7559 \u4e3a \u6a21\u677f \u5e76 \u5728 \u5f00\u59cb \u586b\u5145 \u4e4b\u524d \u590d\u5236 \u5b83 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u5728 CarlaMapGenerator \u4e2d \uff0c \u6709 \u4e00\u4e2a \u5b57 \u6bb5 \u201c \u79cd\u5b50 \u201d \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u66f4\u6539 \u8be5 \u79cd\u5b50 \u5e76 \u5355\u51fb \u201c \u89e6\u53d1 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u751f\u6210 \u201d \u6765 \u66f4\u6539 \u5730\u56fe \u3002 \u8fd8 \u5e94\u9009 \u4e2d \u201c \u5c06 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u201d \u3002 \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u79cd\u5b50 \uff0c \u76f4\u5230 \u83b7\u5f97 \u6ee1\u610f \u7684 \u5730\u56fe \u3002 \u6b64\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u60f3\u8981 \u751f\u6210 \u6c7d\u8f66 \u7684 \u5730\u65b9 \u653e\u7f6e \u65b0 \u7684 PlayerStarts \u3002 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u5df2\u7ecf \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \uff0c \u4f46 \u6c7d\u8f66 \u4e0d\u4f1a \u968f\u673a \u884c\u52a8 \u3002 \u8f66\u8f86 \u5c06 \u9075\u5faa RoadMapGenerator \u7ed9\u51fa \u7684 \u6307\u4ee4 \u3002 \u5b83\u4eec \u5728 \u76f4 \u8def\u4e0a \u4f1a \u5f88 \u5bb9\u6613 \u5730 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u4f46 \u5728 \u8fdb\u5165 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u65f6\u5219 \u4e0d\u4f1a \u90a3\u4e48 \u5bb9\u6613 \uff1a \uff08 \u8fd9\u662f \u9053\u8def \u5411 \u8f66\u8f86 \u53d1\u51fa \u7684 \u6307\u4ee4 \u7684 \u8c03\u8bd5 \u89c6\u56fe \u3002 \u5b83\u4eec \u5c06 \u59cb\u7ec8 \u9075\u5faa \u7eff\u8272 \u7bad\u5934 \uff0c \u767d\u70b9 \u662f \u4e00\u6761 \u6216 \u591a\u6761 \u8def\u7ebf \u4e4b\u95f4 \u7684 \u5171\u4eab \u70b9 \uff0c \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u547d\u4ee4 \u8f66\u8f86 \u7ee7\u7eed \u76f4\u884c \uff1b \u9ed1\u70b9 \u504f\u79bb \u9053\u8def \uff0c \u8f66\u8f86 \u6ca1\u6709 \u5f97\u5230 \u4efb\u4f55 \u6307\u4ee4 \u5e76 \u5411 \u5de6 \u884c\u9a76 \uff0c \u8bd5\u56fe \u56de\u5230 \u9053\u8def \u4e0a \uff09 \u8981 \u83b7\u5f97 \u968f\u673a \u884c\u4e3a \uff0c \u60a8 \u5fc5\u987b \u653e\u7f6e IntersectionEntrances \uff0c \u8fd9 \u5c06 \u8ba9 \u60a8 \u91cd\u65b0 \u5b9a\u4e49 \u8f66\u8f86 \u884c\u9a76 \u7684 \u65b9\u5411 \uff0c \u8986\u76d6 \u9053\u8def \u5730\u56fe \u7ed9\u51fa \u7684 \u65b9\u5411 \uff08 \u76f4\u5230 \u5b83\u4eec \u5b8c\u6210 \u7ed9\u5b9a \u7684 \u987a\u5e8f \uff09 \u3002 \uff08 \u53c2\u89c1 \u4e24\u4e2a \u793a\u4f8b \u57ce\u9547 \uff0c \u4e86\u89e3 \u5176 \u5177\u4f53 \u5de5\u4f5c \u539f\u7406 \uff09 \u3002 0.7 . 1 \u7248\u672c \u4e4b\u524d \uff1a \u5bf9\u4e8e \u6bcf\u4e2a \u5165\u53e3 \uff0c \u4f60 \u5fc5\u987b \u521b\u5efa \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7a7a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5b83\u4eec \u5c06 \u4f5c\u4e3a \u5f15\u5bfc \u6c7d\u8f66 \u901a\u8fc7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u8def\u5f84 \u70b9 \uff1b \u7136\u540e \uff0c \u4f60 \u5fc5\u987b \u5c06 \u76f8\u5e94 \u7684 Actor \u5206\u914d \u7ed9 \u6bcf\u6761 \u8def\u5f84 0.7 . 1 \u7248 \u4e4b\u540e \uff1a \u6bcf\u4e2a IntersectionEntrance \u90fd \u6709 \u4e00\u4e2a \u540d\u4e3a routes \u7684 \u6570\u7ec4 \uff0c \u5411 \u5176\u4e2d \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u4f1a \u5728 \u4e16\u754c \u4e2d \u521b\u5efa \u4e00\u4e2a \u53ef \u7f16\u8f91 \u7684 \u6837\u6761 \u7ebf \uff0c \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \u4f4d\u4e8e IntersectionEntrance \u4e0a \uff08 \u60a8 \u53ef\u80fd \u9700\u8981 \u9009\u62e9 \u53e6 \u4e00\u4e2a \u5bf9\u8c61 \u624d\u80fd \u770b\u5230 \u5b83 \uff09 \u6b64 \u6837\u6761 \u7ebf \u5b9a\u4e49 \u4e86 \u4efb\u4f55 \u8f66\u8f86 \u8fdb\u5165 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u65f6 \u53ef\u80fd \u91c7\u53d6 \u7684 \u8def\u7ebf \uff08 \u5c31 \u50cf \u4e4b\u524d \u7684 Empty \u6f14\u5458 \u6240 \u505a \u7684 \u90a3\u6837 \uff09 \u60a8 \u53ef\u4ee5 \u50cf \u7f16\u8f91 \u4efb\u4f55 \u865a\u5e7b \u6837\u6761 \u7ebf \u4e00\u6837 \u914d\u7f6e \u6b64 \u8def\u7ebf \u3002 \u6bcf\u6761 \u8def\u7ebf \u5c06 \u5728 \u4ee5\u4e0b \u5b57\u6bb5 \u4e2d \u521b\u5efa \u4e00\u4e2a \u5143\u7d20 \uff1a \u201c \u6982\u7387 \u201d \u6b64 \u6570\u7ec4 \u4e2d \u7684 \u6bcf\u4e2a \u6570\u5b57 \u90fd \u5b9a\u4e49 \u4e86 \u4efb\u4f55 \u8f66\u8f86 \u91c7\u53d6 \u76f8\u5e94 \u91c7\u53d6\u76f8\u5e94 \u8def\u7ebf \u7684 \u51e0\u7387 \u3002 \u8981 \u6539\u53d8 \u6c7d\u8f66 \u7684 \u901f\u5ea6 \uff0c \u8bf7 \u4f7f\u7528 \u901f\u5ea6 \u9650\u5236 \u9650\u5236\u5668 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8d77\u6765 \u5f88 \u7b80\u5355 \u3002 \uff08 \u786e\u4fdd \u9650\u5236 \u8f6c\u5f2f \u901f\u5ea6 \uff0c \u5426\u5219 \u6c7d\u8f66 \u4f1a \u8bd5\u56fe \u4ee5 \u5168\u901f \u8f6c\u5f2f \uff0c \u4f46 \u65e0\u6cd5 \u6210\u529f \uff09 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9700\u8981 \u6309\u7167 \u811a\u672c \u6765 \u907f\u514d \u4ea4\u901a \u901a\u4e8b \u4e8b\u6545 \u4ea4\u901a\u4e8b\u6545 \u3002 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u6bcf\u6761 \u8857\u9053 \u90fd \u5e94\u8be5 \u6709 \u81ea\u5df1 \u7684 \u7eff\u706f \u8f6c\u5f2f \uff0c \u800c \u5176\u4ed6 \u8857\u9053 \u5219 \u4e0d \u5e94\u6709 \u7eff\u706f \u3002 \u7136\u540e \u4f60 \u5c31 \u53ef\u4ee5 \u5728 \u6574\u4e2a \u4e16\u754c \u4e2d \u5e03\u6ee1 \u98ce\u666f \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002","title":"\u521b\u5efa"},{"location":"map_customization/#_5","text":"\u6b64 \u84dd\u56fe \u7684 \u76ee\u7684 \u662f \u4f7f \u91cd\u590d \u548c \u6539\u53d8 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u4e00\u4e9b \u3002 \u63d0\u4f9b \u4e00\u4e2a \u57fa\u7840 \u3001 \u4e00\u4e2a \u4e2d\u5c42 \u548c \u4e00\u4e2a \u5c4b\u9876 \uff1b \u6b64 \u84dd\u56fe \u5c06 \u4e2d\u5c42 \u91cd\u590d \u5230 \u6240 \u9700 \u7684 \u5546\u5e97 \u6570\u91cf \uff0c \u5e76 \u5728 \u6ee1\u8db3 \u67d0\u4e9b \u6761\u4ef6 \u7684 \u60c5\u51b5 \u4e0b \u5c06 \u5176 \u4e0e \u6700\u540e \u4e00\u5c42 \u53e0\u52a0 \uff1a \u6240\u6709 \u6a21\u578b \u67a2\u8f74 \u90fd \u5e94 \u4f4d\u4e8e \u7279\u5b9a \u7f51\u683c \u7684 \u5e95\u90e8 \u4e2d\u5fc3 \u3002 Al \u6a21\u578b \u5fc5\u987b \u51c6\u786e \u5730 \u5728 \u91cd\u590d \u53d1\u751f \u7684 \u5730\u65b9 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 \u8be5 \u84dd\u56fe \u7531 \u4ee5\u4e0b 6 \u4e2a \u7279\u5b9a \u53c2\u6570 \u63a7\u5236 \uff1a GroundFloor \uff1a \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5e95\u90e8 \u7684 \u7f51\u683c \u3002 Floor \uff1a \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u91cd\u590d \u7684 \u7f51\u683c \u3002 Roof \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9876\u90e8 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 FloorNumber \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 FloorHeightOffset \uff1a \u5782\u76f4 \u8c03\u6574 \u6bcf \u5c42\u697c \u7684 \u4f4d\u7f6e \u3002 RoofOffset \uff1a \u5782\u76f4 \u8c03\u6574 \u5c4b\u9876 \u7684 \u4f4d\u7f6e \u3002 \u4e00\u65e6 \u5c06 \u8be5 \u84dd\u56fe \u653e\u7f6e \u5728 \u4e16\u754c \u4e2d \uff0c \u6240\u6709 \u8fd9\u4e9b \u53c2\u6570 \u90fd \u53ef\u4ee5 \u88ab \u4fee\u6539 \u3002","title":"\u591a\u5c42\u5efa\u7b51"},{"location":"map_customization/#splinemeshrepeater","text":"\u6f0f\u6d1e \u53c2\u89c1 # 35 SplineMeshRepeater \u4e22\u5931 \u5176 \u78b0\u649e \u4f53 \u7f51\u683c","title":"SplinemeshRepeater"},{"location":"map_customization/#_6","text":"SplineMeshRepeater \u201c Content / Blueprints / SplineMeshRepeater \u201d \u662f Carla Project \u4e2d \u5305\u542b \u7684 \u4e00\u4e2a \u5de5\u5177 \uff0c \u7528\u4e8e \u5e2e\u52a9 \u6784\u5efa \u57ce\u5e02 \u73af\u5883 \uff1b \u5b83 \u6cbf\u7740 \u6837 \u6761\u7ebf \uff08 \u865a\u5e7b \u7ec4\u4ef6 \uff09 \u91cd\u590d \u548c \u5bf9\u9f50 \u7279\u5b9a \u9009\u5b9a \u7684 \u7f51\u683c \u3002 \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u6784\u5efa \u901a\u5e38 \u5e73\u94fa \u548c \u91cd\u590d \u7684 \u7ed3\u6784 \uff0c \u5982 \u5899\u58c1 \u3001 \u9053\u8def \u3001 \u6865\u6881 \u3001 \u6805\u680f \u2026 \u2026 \u4e00\u65e6 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u653e\u5165 \u4e16\u754c \uff0c \u5c31 \u53ef\u4ee5 \u4fee\u6539 \u6837\u6761 \u7ebf \uff0c \u4ee5\u4fbf \u5bf9\u8c61 \u83b7\u5f97 \u6240 \u9700 \u7684 \u5f62\u5f0f \u3002 \u5b9a\u4e49 \u6837\u6761 \u7ebf \u7684 \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u751f\u6210 \u4e00\u4e2a \u65b0 \u7684 \u56fe\u5757 \uff0c \u56e0\u6b64 \u6837\u6761 \u7ebf \u7684 \u70b9 \u8d8a \u591a \uff0c \u5b83 \u5c31 \u8d8a \u660e\u786e \uff0c \u4f46 \u5bf9 \u4e16\u754c \u7684 \u8d1f\u62c5 \u4e5f \u8d8a \u5927 \u3002 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7531 \u4ee5\u4e0b \u53c2\u6570 \u5b9a\u4e49 \uff1a \u9759\u6001 \u7f51\u683c \u7269\u4f53 ( StaticMesh ) \uff1a \u6cbf \u6837\u6761 \u7ebf \u91cd\u590d \u7684 \u7f51\u683c \u7269\u4f53 \u3002 ForWardAxis \uff1a \u6539\u53d8 \u7f51\u683c \u8f74\u4ee5 \u4e0e \u6837\u6761 \u7ebf \u5bf9\u9f50 \u3002 Material \uff1a \u8986\u76d6 \u7f51\u683c \u7684 \u9ed8\u8ba4 \u6750\u8d28 \u3002 Collision Enabled \uff1a \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 Gap distance \uff1a \u5728 \u6bcf\u4e2a \u91cd\u590d \u7f51\u683c \u4e4b\u95f4 \u653e\u7f6e \u4e00\u4e2a \u95f4\u9699 \uff0c \u9002\u7528 \u4e8e \u91cd\u590d \u7684 \u975e \u8fde\u7eed \u5899\u58c1 \uff1a \u704c\u6728 \u94fe \u3001 \u62a4\u67f1 \u2026 \u2026 \uff08 \u6700\u540e \u4e09\u4e2a \u53d8\u91cf \u662f \u9488\u5bf9 \u4e0b \u4e00\u70b9 \u4e2d\u8981 \u5b9a\u4e49 \u7684 \u4e00\u4e9b \u7279\u5b9a \u8d44\u4ea7 \u800c\u5b9a \u7684 \uff09 \u521b\u5efa \u4e0e \u6b64 \u7ec4\u4ef6 \u517c\u5bb9 \u7684 \u8d44\u4ea7 \u7684 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u662f \uff0c \u6240\u6709 \u7f51\u683c \u7684 \u67a2\u8f74 \u90fd \u653e\u7f6e \u5728 \u91cd\u590d \u5f00\u59cb \u7684 \u6700\u4f4e \u4f4e\u70b9 \u6700\u4f4e\u70b9 \uff0c \u5176\u4f59 \u7f51\u683c \u6307\u5411 \u6b63 \u65b9\u5411 \uff08 \u6700\u597d \u662f X \u8f74 \uff09","title":"\u6807\u51c6 \u7528\u9014 \uff1a"},{"location":"map_customization/#_7","text":"\u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u201c Content / Static / Walls \u201d \u4e2d \u5305\u542b \u4e00\u4e9b \u7279\u5b9a \u8d44\u4ea7 \uff0c \u8fd9\u4e9b \u8d44\u4ea7 \u5c06 \u4e0e \u5177\u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u6b8a \u7279\u6027 \u7684 SplineMeshRepeater \u4e00\u8d77 \u4f7f\u7528 \u3002 \u8fd9\u4e9b \u7f51\u683c \u7684 UV \u7a7a\u95f4 \u53ca\u5176 \u6750\u8d28 \u5bf9\u4e8e \u6240\u6709 \u7f51\u683c \u90fd \u662f \u76f8\u540c \u7684 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u4e92\u6362 \u3002 \u6bcf\u79cd \u6750\u8d28 \u7531 \u4e09\u4e2a \u4e0d\u540c \u7684 \u8868\u9762 \u7ec4\u6210 \uff0c \u6700\u540e \u4e09\u4e2a \u53c2\u6570 \u4f1a \u7a0d\u5fae \u4fee\u6539 \u8fd9\u4e9b \u8868\u9762 \u7684 \u989c\u8272 \uff1a MainMaterialColor \uff1a \u66f4\u6539 \u5899\u58c1 \u7684 \u4e3b\u8981 \u6750\u8d28 DetailsColor \uff1a \u66f4\u6539 \u7ec6\u8282 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 TopWallColor \uff1a \u66f4\u6539 \u5899\u58c1 \u8986\u76d6 \u8986\u76d6\u7269 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 \u8981 \u6dfb\u52a0 \u4ece\u6b64 \u529f\u80fd \u4e2d \u53d7\u76ca \u7684 \u5143\u7d20 \uff0c \u5b58\u5728 GardenWallMask \u6587\u4ef6 \uff0c \u5b83 \u5b9a\u4e49 \u4e86 \u653e\u7f6e \u6750\u6599 \u7684 uv \u7a7a\u95f4 \uff1a \uff08 \u84dd\u8272 \u7a7a\u95f4 \uff1a MainMaterial \uff1b \u7eff\u8272 \u7a7a\u95f4 \uff1a Details \uff1b \u7ea2\u8272 \u7a7a\u95f4 TopWall \uff09 \u3002 \u6750\u8d28 \u4e3b\u63a7 \u4e4b\u95f4 \u662f WallMaster \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4f7f\u7528 \u6b64 \u529f\u80fd \u7684 \u6750\u8d28 \u7684 \u4e3b\u63a7 \u3002 \u5c06 \u521b\u5efa \u6b64 \u6750\u8d28 \u7684 \u5b9e\u4f8b \u5e76 \u6dfb\u52a0 \u76f8\u5e94 \u7684 \u7eb9\u7406 \u3002 \u6b64 \u6750\u8d28 \u5305\u62ec \u4ee5\u4e0b \u53c2\u6570 \uff0c \u4f9b\u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u4fee\u6539 \uff1a Normal Flattener \uff1a \u7a0d\u5fae \u4fee\u6539 \u6cd5\u7ebf \u8d34\u56fe \u503c\u4ee5 \u4f7f \u5176 \u5938\u5927 \u6216 \u5e73\u6574 \u3002 RoughnessCorrection \uff1a \u6539\u53d8 \u7eb9\u7406 \u7ed9\u51fa \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u503c \u3002 \u5176\u4f59 \u53c2\u6570 \u662f \u63a9\u7801 \u7eb9\u7406 \u548c \u989c\u8272 \u6821\u6b63 \uff0c \u8fd9\u4e9b \u53c2\u6570 \u5728 \u672c\u4f8b \u4e2d \u4e0d\u4f1a \u88ab \u4fee\u6539 \uff0c \u4f46 \u5728 \u5c06\u8981 \u53d1\u5e03 \u5230 \u4e16\u754c \u7684 \u84dd\u56fe \u4e2d\u4f1a \u88ab \u4fee\u6539 \u3002","title":"\u7279\u5b9a \u5899\u58c1 \uff08 \u52a8\u6001 \u6750\u8d28 \uff09"},{"location":"map_customization/#_8","text":"\u8fd9\u662f \u8d1f\u8d23 \u4fee\u6539 \u6240\u6709 \u7167\u660e \u3001 \u73af\u5883 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u5f71\u54cd \u6c14\u5019 \u5370\u8c61 \u7684 \u4efb\u4f55 \u4f55\u4e8b \u4e8b\u7269 \u4efb\u4f55\u4e8b\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5f53 \u5728 Config . Ini \u4e2d\u672a \u53e6\u884c \u6307\u5b9a \u65f6 \uff0c \u5b83\u4f1a \u968f \u6e38\u620f \u81ea\u52a8 \u8fd0\u884c \uff0c \u4f46 \u6709 \u81ea\u5df1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u6a21\u5f0f \u4e0b \u542f\u52a8 \u4ee5 \u914d\u7f6e \u6c14\u5019 \u6761\u4ef6 \u3002 \u8981 \u5b8c\u5168 \u5de5\u4f5c \uff0c \u5b83 \u5c06 \u9700\u8981 \u4ee5\u4e0b \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e2d \u7684 \u4e00\u4e2a \uff1a SkySphere \u3001 Skylight \u3001 Postprocess Volume \uff08 \u65e0 \u8fb9\u754c \uff09 \u548c Light Source \u5b58\u5728 \u4e8e \u4e16\u754c \u4e2d \u3002 SunPolarAngle \uff1a \u592a\u9633 \u7684 \u6781\u89d2 \uff0c \u51b3\u5b9a \u4e00\u5929 \u7684 \u65f6\u95f4 SunAzimuthAngle \uff1a \u6dfb\u52a0 \u5230 \u5f53\u524d \u7ea7\u522b \u7684 \u592a\u9633 \u4f4d\u7f6e SunBrightness \uff1a \u5929\u7a7a \u76d2\u4e2d \u592a\u9633 \u6e32\u67d3 \u7684 \u4eae\u5ea6 SunDirectionalLightIntensity \uff1a \u592a\u9633 \u9633\u5149 \u592a\u9633\u5149 \u7684 \u5f3a\u5ea6 SunDirectionalLightColor \uff1a \u9633\u5149 \u7684 \u989c\u8272 SunIndirectLightIntensity \uff1a \u4e3b \u53cd\u5c04 \u5149\u53cd\u5c04 \u7684 \u5f3a\u5ea6 CloudOpacity \uff1a \u5929\u7a7a \u76d2 \u4e0a \u4e91 \u6e32\u67d3 \u7684 \u53ef\u89c1 \u6027 HorizontFalloff \uff1a \u786e\u5b9a \u5929\u9876 \u548c \u5730\u5e73 \u5730\u5e73\u7ebf \u989c\u8272 \u4e4b\u95f4 \u7684 \u6e10\u53d8 \u9ad8\u5ea6 ZenithColor \uff1a \u5b9a\u4e49 \u5929\u9876 \u7684 \u989c\u8272 \u3002 HorizonColor \uff1a \u5b9a\u4e49 \u5730\u5e73 \u5730\u5e73\u7ebf \u7684 \u989c\u8272 \u3002 CloudColor \uff1a \u5b9a\u4e49 \u4e91 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 \u3002 OverallSkyColor \uff1a \u5c06 \u5929\u7a7a \u4e2d \u7684 \u6bcf\u4e2a \u989c\u8272 \u5143\u7d20 \u4e58\u4ee5 \u5355\u4e00 \u989c\u8272 \u3002 SkyLightIntensity \uff1a \u4ece \u5929\u7a7a \u53cd\u5c04 \u7684 \u5149 \u7684 \u5f3a\u5ea6 \u3002 SkyLightColor \uff1a \u4ece \u5929\u7a7a \u53cd\u5c04 \u7684 \u5149 \u7684 \u989c\u8272 \u3002 Precipitation \uff1a \u5b9a\u4e49 \u662f\u5426 \u6709 \u964d\u6c34 \u6d3b\u52a8 \u3002 PrecipitationType \uff1a \u6d3b\u8dc3 \u964d\u6c34 \u7684 \u7c7b\u578b \u3002 PrecipitationAmount \uff1a \u6240 \u9009 \u964d\u6c34 \u7684 \u6570\u91cf \u3002 PrecipitationAccumulation \uff1a \u6240 \u9009 \u964d\u6c34 \u7684 \u79ef\u7d2f \u3002 bWind \uff1a \u5b9a\u4e49 \u662f\u5426 \u6709\u98ce \u3002 WindIntensity \uff1a \u5b9a\u4e49 \u98ce \u5f3a\u5ea6 \u3002 WindAngle \uff1a \u5b9a\u4e49 \u98ce\u5411 \u3002 bOverrideCameraPostProcessParameters \uff1a \u5b9a\u4e49 \u662f\u5426 \u8986\u76d6 \u9ed8\u8ba4 \u7684 \u76f8\u673a \u540e\u671f \u5904\u7406 \u3002 CameraPostProcessParameters . AutoExposureMethod \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u7684 \u65b9\u6cd5 \u3002 CameraPostProcessParameters . AutoExposureMinBrightness \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u5728 \u6700\u7ec8 \u56fe\u50cf \u4e2d \u7b97\u4f5c \u7684 \u6700\u5c0f \u4eae\u5ea6 \u3002 CameraPostProcessParameters . AutoExposureMaxBrightness \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u5728 \u6700\u7ec8 \u56fe\u50cf \u4e2d \u7b97\u4f5c \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 CameraPostProcessParameters . AutoExposureBias \uff1a \u4f7f \u6700\u7ec8 \u56fe\u50cf \u53d8\u6697 \u6216 \u53d8\u4eae \uff0c \u8fbe\u5230 \u5b9a\u4e49 \u7684 \u504f\u5dee \u3002 \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u5728 \u9879\u76ee \u4e2d \u4fdd\u5b58 \u4efb\u610f \u6570\u91cf \u7684 \u4e0d\u540c \u914d\u7f6e \uff0c \u5e76 \u901a\u8fc7 \u8bbe\u7f6e \u6587\u4ef6 \u9009\u62e9 \u5728 \u6784\u5efa \u65f6 \u5e94\u7528 \u7684 \u914d\u7f6e \uff1b \u6216\u8005 \u5728 \u6784\u5efa \u7ea7\u522b \u6216 \u6d4b\u8bd5 \u65f6 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5e94\u7528 \u3002","title":"\u5929\u6c14"},{"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 \u4eff\u771f \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 \u4eff\u771f \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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":"measurements/","text":"\u6d4b\u91cf \u91cd\u8981 \u81ea 0.8 . 0 \u7248\u8d77 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u7684 \u6d4b\u91cf \u503c \u91c7\u7528 \u56fd\u9645 \u5355\u4f4d \u5355\u4f4d\u5236 \u3002 \u6240\u6709 \u4f4d\u7f6e \u5747 \u5df2 \u8f6c\u6362 \u4e3a \u7c73 \uff0c \u901f\u5ea6 \u4e5f \u5df2 \u8f6c\u6362 \u4e3a \u7c73 / \u79d2 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6bcf\u5e27 \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u4e00\u4e2a \u5305\u542b \u6d4b\u91cf \u503c \u548c \u6536\u96c6 \u5230 \u7684 \u56fe\u50cf \u6570\u636e \u6570\u636e\u5305 \u3002 \u672c \u6587\u6863 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u6d4b\u91cf \u503c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u65f6\u95f4 \u6233 \u6bcf\u4e2a \u5e27 \u7531 \u4e09\u4e2a \u4e0d\u540c \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 / \u65f6\u95f4 \u6233 \u63cf\u8ff0 \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 frame _ number uint64 \u5e27 \u8ba1\u6570 \u8ba1\u6570\u5668 \uff08 \u4e0d\u4f1a \u5728 \u6bcf\u96c6 \u7ed3\u675f \u540e \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff09 \u3002 platform _ timestamp uint32 \u6beb\u79d2 \u5f53\u524d \u5e27 \u7684 \u65f6\u95f4 \u6233 \uff0c \u7531 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u3002 game _ timestamp uint32 \u6beb\u79d2 \u6e38\u620f \u4e2d \u7684 \u65f6\u95f4 \u6233 \uff0c \u81ea \u5f53\u524d \u5267\u96c6 \u5f00\u59cb \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u5728 \u5b9e\u65f6 \u6a21\u5f0f \u4e0b \uff0c \u4e24\u4e2a \u65f6\u95f4 \u6b65\u957f \u4e4b\u95f4 \u7684 \u7ecf\u8fc7 \u65f6\u95f4 \u5e94 \u4e0e \u5e73\u53f0 \u548c \u6e38\u620f \u65f6\u95f4 \u6233 \u76f8\u4f3c \u3002 \u5728 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e2d \u8fd0\u884c \u65f6 \uff0c \u6e38\u620f \u65f6\u95f4 \u6233 \u4ee5 \u6052\u5b9a \u65f6\u95f4 \u6b65\u957f \u9012\u589e \uff08 delta = 1 / FPS \uff09 \uff0c \u800c \u5e73\u53f0 \u65f6\u95f4 \u6233 \u4fdd\u6301 \u5b9e\u9645 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u73a9\u5bb6 \u6d4b\u91cf \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 transform Transform \u73a9\u5bb6 \u7684 \u4e16\u754c \u53d8\u6362 \uff08 \u5305\u542b \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 acceleration Vector3D m / s ^ 2 \u73a9\u5bb6 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 forward _ speed float m / s \u73a9\u5bb6 \u7684 \u524d\u8fdb \u901f\u5ea6 \u3002 collision _ vehicles float kg * m / s \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u78b0\u649e \u5f3a\u5ea6 \u3002 collision _ pedestrians float kg * m / s \u4e0e \u884c\u4eba \u7684 \u78b0\u649e \u5f3a\u5ea6 \u3002 collision _ other float kg * m / s \u4e00\u822c \u78b0\u649e \u5f3a\u5ea6 \uff08 \u9664 \u884c\u4eba \u548c \u8f66\u8f86 \u4ee5\u5916 \u7684 \u4e00\u5207 \uff09 \u3002 intersection _ otherlane float \u8f66\u8f86 \u4fb5\u5165 \u5176\u4ed6 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 intersection _ offroad float \u6c7d\u8f66 \u8d8a\u91ce \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 autopilot _ control float \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u63a7\u5236 \u5c06 \u5e94\u7528 \u6b64 \u6846\u67b6 \u3002 \u8f6c\u6362 \u53d8\u6362 \u5305\u542b \u73a9\u5bb6 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 location Vector3D \u7c73 \u4e16\u754c \u4f4d\u7f6e \u3002 orientation [ \u5df2\u5f03 \u7528 ] Vector3D \u4ee5 \u5361\u5c14 \u7b1b\u5361\u5c14 \u5750\u6807 \u8868\u793a \u7684 \u65b9\u5411 \u3002 rotation Vector3D \u5ea6 \u4fef\u4ef0 \u3001 \u6eda\u8f6c \u548c \u504f\u822a \u3002 \u78b0\u649e \u78b0\u649e \u53d8\u91cf \u4fdd\u5b58 \u4e86 \u6b64 \u4e8b\u4ef6 \u4e2d \u53d1\u751f \u7684 \u6240\u6709 \u78b0\u649e \u7684 \u7d2f\u79ef \u3002 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u6309 \u6bd4\u4f8b \u5f71\u54cd \u78b0\u649e \u5f3a\u5ea6 \uff08 \u4e24\u4e2a \u78b0\u649e \u7269\u4f53 \u4e4b\u95f4 \u7684 \u6cd5\u5411 \u51b2\u91cf \u7684 \u8303\u6570 \uff09 \u3002 \u4fdd\u7559 \u4e09\u79cd \u4e0d\u540c \u7684 \u8ba1\u6570 \uff08 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u5176\u4ed6 \uff09 \u3002 \u78b0\u649e \u7269\u4f53 \u6839\u636e \u5176 \u6807\u7b7e \u8fdb\u884c \u5206\u7c7b \uff08 \u4e0e \u8bed\u4e49 \u5206\u5272 \u76f8\u540c \uff09 \u3002 \u6f0f\u6d1e \u53c2\u89c1 # 13 \u5f53 \u8f66\u8f86 \u901f\u5ea6 \u8f83 \u4f4e\u65f6 \uff0c \u4e0d\u4f1a \u6807\u6ce8 \u78b0\u649e \u5982\u679c \u8f66\u8f86 \u6ca1\u6709 \u79fb\u52a8 \uff08 < 1 \u516c\u91cc / \u5c0f\u65f6 \uff09 \uff0c \u5219 \u4e0d\u4f1a \u6ce8\u91ca \u78b0\u649e \uff0c \u4ee5 \u907f\u514d \u7531\u4e8e \u975e \u73a9\u5bb6 \u4ee3\u7406 \u7684 AI \u9519\u8bef \u800c \u6ce8\u91ca \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 / \u8d8a\u91ce \u8def\u53e3 \u8f66\u9053 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6d4b\u91cf \u8f66\u8f86 \u4fb5\u5165 \u5bf9\u9762 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8d8a\u91ce \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6d4b\u91cf \u8f66\u8f86 \u5728 \u9053\u8def \u5916 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8fd9\u4e9b \u503c \u662f \u901a\u8fc7 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff08 \u4f5c\u4e3a 2D \u77e9\u5f62 \uff09 \u4e0e \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \u56fe\u50cf \u76f8\u4ea4 \u8ba1\u7b97 \u5f97\u51fa \u7684 \u3002 \u8fd9\u4e9b \u56fe\u50cf \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u751f\u6210 \u5e76 \u5e8f\u5217 \u5e8f\u5217\u5316 \u4ee5\u4f9b \u8fd0\u884c \u65f6 \u4f7f\u7528 \u3002 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 \u53d1\u5e03 \u5305\u4e2d \u7684 \u201c RoadMaps \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u627e\u5230 \u5b83\u4eec \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u63a7\u5236 \u6d4b\u91cf autopilot _ control \u7ed3\u679c \u5305\u542b \u6e38\u620f \u5185 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u5728 \u63a7\u5236 \u8f66\u8f86 \u65f6\u6240 \u5e94\u7528 \u7684 \u63a7\u5236 \u503c \u3002 \u8fd9 \u4e0e \u5c06 \u8f66\u8f86 \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ed3\u6784 \u76f8\u540c \u3002 \u952e \u7c7b\u578b \u63cf\u8ff0 steer float \u8f6c\u5411 \u89d2\u5ea6 \u5728 [ - 1.0 , 1.0 ] \u4e4b\u95f4 ( * ) throttle float \u6cb9\u95e8 \u8f93\u5165 \u4ecb\u4e8e [ 0.0 , 1.0 ] \u4e4b\u95f4 brake float \u5239\u8f66 \u8f93\u5165 \u4ecb\u4e8e [ 0.0 , 1.0 ] \u4e4b\u95f4 hand _ brake bool \u624b\u5239 \u662f\u5426 \u62c9\u7d27 reverse bool \u8f66\u8f86 \u662f\u5426 \u5904\u4e8e \u5012 \u6863 \u8981 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u6fc0\u6d3b \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u8bf7 \u5c06 autopilot _ control \u53d1\u9001 \u56de \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5c06 \u5176 \u53d1\u9001 \u56de \u4e4b\u524d \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u3002 measurements , sensor _ data = carla _ client . read _ data ( ) control = measurements . player _ measurements . autopilot _ control # modify here control if wanted . carla _ client . send _ control ( control ) ( * ) \u5b9e\u9645 \u8f6c\u5411 \u89d2\u5ea6 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6240\u7528 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 Mustang \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u4e3a 70 \u5ea6 \uff08 \u53ef \u5728 \u8f66\u8f86 \u524d\u8f6e \u84dd\u56fe \u4e2d \u67e5\u770b \uff09 \u3002","title":"\u6d4b\u91cf"},{"location":"measurements/#_1","text":"\u91cd\u8981 \u81ea 0.8 . 0 \u7248\u8d77 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u7684 \u6d4b\u91cf \u503c \u91c7\u7528 \u56fd\u9645 \u5355\u4f4d \u5355\u4f4d\u5236 \u3002 \u6240\u6709 \u4f4d\u7f6e \u5747 \u5df2 \u8f6c\u6362 \u4e3a \u7c73 \uff0c \u901f\u5ea6 \u4e5f \u5df2 \u8f6c\u6362 \u4e3a \u7c73 / \u79d2 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6bcf\u5e27 \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u4e00\u4e2a \u5305\u542b \u6d4b\u91cf \u503c \u548c \u6536\u96c6 \u5230 \u7684 \u56fe\u50cf \u6570\u636e \u6570\u636e\u5305 \u3002 \u672c \u6587\u6863 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u6d4b\u91cf \u503c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u6d4b\u91cf"},{"location":"measurements/#_2","text":"\u6bcf\u4e2a \u5e27 \u7531 \u4e09\u4e2a \u4e0d\u540c \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 / \u65f6\u95f4 \u6233 \u63cf\u8ff0 \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 frame _ number uint64 \u5e27 \u8ba1\u6570 \u8ba1\u6570\u5668 \uff08 \u4e0d\u4f1a \u5728 \u6bcf\u96c6 \u7ed3\u675f \u540e \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff09 \u3002 platform _ timestamp uint32 \u6beb\u79d2 \u5f53\u524d \u5e27 \u7684 \u65f6\u95f4 \u6233 \uff0c \u7531 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u3002 game _ timestamp uint32 \u6beb\u79d2 \u6e38\u620f \u4e2d \u7684 \u65f6\u95f4 \u6233 \uff0c \u81ea \u5f53\u524d \u5267\u96c6 \u5f00\u59cb \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u5728 \u5b9e\u65f6 \u6a21\u5f0f \u4e0b \uff0c \u4e24\u4e2a \u65f6\u95f4 \u6b65\u957f \u4e4b\u95f4 \u7684 \u7ecf\u8fc7 \u65f6\u95f4 \u5e94 \u4e0e \u5e73\u53f0 \u548c \u6e38\u620f \u65f6\u95f4 \u6233 \u76f8\u4f3c \u3002 \u5728 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e2d \u8fd0\u884c \u65f6 \uff0c \u6e38\u620f \u65f6\u95f4 \u6233 \u4ee5 \u6052\u5b9a \u65f6\u95f4 \u6b65\u957f \u9012\u589e \uff08 delta = 1 / FPS \uff09 \uff0c \u800c \u5e73\u53f0 \u65f6\u95f4 \u6233 \u4fdd\u6301 \u5b9e\u9645 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002","title":"\u65f6\u95f4 \u6233"},{"location":"measurements/#_3","text":"\u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 transform Transform \u73a9\u5bb6 \u7684 \u4e16\u754c \u53d8\u6362 \uff08 \u5305\u542b \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 acceleration Vector3D m / s ^ 2 \u73a9\u5bb6 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 forward _ speed float m / s \u73a9\u5bb6 \u7684 \u524d\u8fdb \u901f\u5ea6 \u3002 collision _ vehicles float kg * m / s \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u78b0\u649e \u5f3a\u5ea6 \u3002 collision _ pedestrians float kg * m / s \u4e0e \u884c\u4eba \u7684 \u78b0\u649e \u5f3a\u5ea6 \u3002 collision _ other float kg * m / s \u4e00\u822c \u78b0\u649e \u5f3a\u5ea6 \uff08 \u9664 \u884c\u4eba \u548c \u8f66\u8f86 \u4ee5\u5916 \u7684 \u4e00\u5207 \uff09 \u3002 intersection _ otherlane float \u8f66\u8f86 \u4fb5\u5165 \u5176\u4ed6 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 intersection _ offroad float \u6c7d\u8f66 \u8d8a\u91ce \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 autopilot _ control float \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u63a7\u5236 \u5c06 \u5e94\u7528 \u6b64 \u6846\u67b6 \u3002","title":"\u73a9\u5bb6 \u6d4b\u91cf"},{"location":"measurements/#_4","text":"\u53d8\u6362 \u5305\u542b \u73a9\u5bb6 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 location Vector3D \u7c73 \u4e16\u754c \u4f4d\u7f6e \u3002 orientation [ \u5df2\u5f03 \u7528 ] Vector3D \u4ee5 \u5361\u5c14 \u7b1b\u5361\u5c14 \u5750\u6807 \u8868\u793a \u7684 \u65b9\u5411 \u3002 rotation Vector3D \u5ea6 \u4fef\u4ef0 \u3001 \u6eda\u8f6c \u548c \u504f\u822a \u3002","title":"\u8f6c\u6362"},{"location":"measurements/#_5","text":"\u78b0\u649e \u53d8\u91cf \u4fdd\u5b58 \u4e86 \u6b64 \u4e8b\u4ef6 \u4e2d \u53d1\u751f \u7684 \u6240\u6709 \u78b0\u649e \u7684 \u7d2f\u79ef \u3002 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u6309 \u6bd4\u4f8b \u5f71\u54cd \u78b0\u649e \u5f3a\u5ea6 \uff08 \u4e24\u4e2a \u78b0\u649e \u7269\u4f53 \u4e4b\u95f4 \u7684 \u6cd5\u5411 \u51b2\u91cf \u7684 \u8303\u6570 \uff09 \u3002 \u4fdd\u7559 \u4e09\u79cd \u4e0d\u540c \u7684 \u8ba1\u6570 \uff08 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u5176\u4ed6 \uff09 \u3002 \u78b0\u649e \u7269\u4f53 \u6839\u636e \u5176 \u6807\u7b7e \u8fdb\u884c \u5206\u7c7b \uff08 \u4e0e \u8bed\u4e49 \u5206\u5272 \u76f8\u540c \uff09 \u3002 \u6f0f\u6d1e \u53c2\u89c1 # 13 \u5f53 \u8f66\u8f86 \u901f\u5ea6 \u8f83 \u4f4e\u65f6 \uff0c \u4e0d\u4f1a \u6807\u6ce8 \u78b0\u649e \u5982\u679c \u8f66\u8f86 \u6ca1\u6709 \u79fb\u52a8 \uff08 < 1 \u516c\u91cc / \u5c0f\u65f6 \uff09 \uff0c \u5219 \u4e0d\u4f1a \u6ce8\u91ca \u78b0\u649e \uff0c \u4ee5 \u907f\u514d \u7531\u4e8e \u975e \u73a9\u5bb6 \u4ee3\u7406 \u7684 AI \u9519\u8bef \u800c \u6ce8\u91ca \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u78b0\u649e \u3002","title":"\u78b0\u649e"},{"location":"measurements/#_6","text":"\u8f66\u9053 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6d4b\u91cf \u8f66\u8f86 \u4fb5\u5165 \u5bf9\u9762 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8d8a\u91ce \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6d4b\u91cf \u8f66\u8f86 \u5728 \u9053\u8def \u5916 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8fd9\u4e9b \u503c \u662f \u901a\u8fc7 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff08 \u4f5c\u4e3a 2D \u77e9\u5f62 \uff09 \u4e0e \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \u56fe\u50cf \u76f8\u4ea4 \u8ba1\u7b97 \u5f97\u51fa \u7684 \u3002 \u8fd9\u4e9b \u56fe\u50cf \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u751f\u6210 \u5e76 \u5e8f\u5217 \u5e8f\u5217\u5316 \u4ee5\u4f9b \u8fd0\u884c \u65f6 \u4f7f\u7528 \u3002 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 \u53d1\u5e03 \u5305\u4e2d \u7684 \u201c RoadMaps \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u627e\u5230 \u5b83\u4eec \u3002","title":"\u8f66\u9053 / \u8d8a\u91ce \u8def\u53e3"},{"location":"measurements/#_7","text":"\u6d4b\u91cf autopilot _ control \u7ed3\u679c \u5305\u542b \u6e38\u620f \u5185 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u5728 \u63a7\u5236 \u8f66\u8f86 \u65f6\u6240 \u5e94\u7528 \u7684 \u63a7\u5236 \u503c \u3002 \u8fd9 \u4e0e \u5c06 \u8f66\u8f86 \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ed3\u6784 \u76f8\u540c \u3002 \u952e \u7c7b\u578b \u63cf\u8ff0 steer float \u8f6c\u5411 \u89d2\u5ea6 \u5728 [ - 1.0 , 1.0 ] \u4e4b\u95f4 ( * ) throttle float \u6cb9\u95e8 \u8f93\u5165 \u4ecb\u4e8e [ 0.0 , 1.0 ] \u4e4b\u95f4 brake float \u5239\u8f66 \u8f93\u5165 \u4ecb\u4e8e [ 0.0 , 1.0 ] \u4e4b\u95f4 hand _ brake bool \u624b\u5239 \u662f\u5426 \u62c9\u7d27 reverse bool \u8f66\u8f86 \u662f\u5426 \u5904\u4e8e \u5012 \u6863 \u8981 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u6fc0\u6d3b \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u8bf7 \u5c06 autopilot _ control \u53d1\u9001 \u56de \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5c06 \u5176 \u53d1\u9001 \u56de \u4e4b\u524d \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u3002 measurements , sensor _ data = carla _ client . read _ data ( ) control = measurements . player _ measurements . autopilot _ control # modify here control if wanted . carla _ client . send _ control ( control ) ( * ) \u5b9e\u9645 \u8f6c\u5411 \u89d2\u5ea6 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6240\u7528 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 Mustang \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u4e3a 70 \u5ea6 \uff08 \u53ef \u5728 \u8f66\u8f86 \u524d\u8f6e \u84dd\u56fe \u4e2d \u67e5\u770b \uff09 \u3002","title":"\u81ea\u52a8 \u9a7e\u9a76\u4eea \u63a7\u5236"},{"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 # \u521b\u5efa \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u4e91 \u6587\u4ef6 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 # \u521b\u5efa \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u4e91 \u6587\u4ef6 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 \u8fd0\u884c \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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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":"carlaviz"},{"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 \u8fd0\u884c \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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \uff0c \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . CAMEvent \u7ee7\u627f \u81ea carla . SensorData \u5b9a\u4e49 sensor . other . v2x \u63d0\u4f9b \u7684 \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9\u662f \u4e00\u79cd \u96c6\u5408 \u7c7b\u578b \uff0c \u7528\u4e8e \u7ec4\u5408 \u8fd4\u56de \u591a\u4e2a CAMData \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ message _ count ( self ) \u83b7\u53d6 \u63a5\u53d7 \u5230 \u7684 CAM \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int \u9b54\u672f \u65b9\u6cd5 __ get _ item __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u5230 \u7684 CAMData \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) 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 \u884c\u4eba \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 \u884c\u4eba \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 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \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 Carla \u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 ) \u4f7f\u7528 map _ name \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u4eca \u4eca\u4e16 \u4e16\u754c \u5f53\u4eca\u4e16\u754c \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \u3002 \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 \u9500\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 \u9500\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 ' = \u884c\u4eba ' 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 \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u6307\u5b9a \u8981 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5730\u56fe \u4e0a \u67e5\u770b \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8be5 \u53c2\u6570 \u4e3a\u7a7a \u5c06 \u9012\u5f52 \u641c\u7d22 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u6240\u6709 \u5730\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5982\u679c \u60a8 \u4e0d \u719f\u6089 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5730\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u7f13\u5b58 \u4e2d \u5c1a\u672a \u5b58\u5728 \u7684 \u6587\u4ef6 \u3002 \u7f13\u5b58 \u53ef\u4ee5 \u5728 HOME \\ carlaCache \u6216 USERPROFILE \\ carlaCache \u4e2d \u627e\u5230 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 version . h \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 \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 \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 \u51b2\u91cf \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 . CustomV2XData \u7ee7\u627f \u81ea carla . SensorData \u8fd9\u662f \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u7684 \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u3002 \u4f5c\u4e3a CustomV2XEvent \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u63a5\u6536 \u3002 \u5b9e\u4f8b \u53d8\u91cf power ( float - \u6beb\u74e6 \u5206\u8d1d dBm ) \u63a5\u6536 \u529f\u7387 \u3002 \u65b9\u6cd5 get ( self ) \u83b7\u53d6 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u3002 \u8fd4\u56de \u5305\u542b \u6d88\u606f \u7684 \u5d4c\u5957 \u5b57\u5178 \u3002 \u5b83 \u6709 \u4e24\u4e2a \u4e3b\u952e \uff1a - Header : dict - Message : str . \u8fd4\u56de \uff1a dict \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . CustomV2XEvent \u7ee7\u627f \u81ea carla . SensorData \u5b9a\u4e49 sensor . other . v2x _ custom \u63d0\u4f9b \u7684 \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9\u662f \u4e00\u79cd \u96c6\u5408 \u7c7b\u578b \uff0c \u7528\u4e8e \u7ec4\u5408 \u8fd4\u56de \u591a\u4e2a CustomV2XData \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ message _ count ( self ) \u83b7\u53d6 \u63a5\u53d7 \u5230 \u7684 CAM \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int \u9b54\u672f \u65b9\u6cd5 __ get _ item __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u7684 CustomV2XData \u6570\u636e \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) 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 1 \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 \u4f53 \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 \u4f53 \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 ( \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 \u897f / \u4e1c\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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \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 \u897f / \u4e1c\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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8def\u5f84 \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 \u8def\u5f84 \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 \u538b\u7ebf \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 \u538b\u7ebf \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) \u68c0\u6d4b \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth ( float - radians ) \u68c0\u6d4b \u7684 \u65b9\u4f4d \u65b9\u4f4d\u89d2 \u3002 depth ( float - \u7c73 ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u68c0\u6d4b \u4f4d\u7f6e \u7684 \u8ddd\u79bb \u3002 velocity ( float - m / s ) \u88ab \u68c0\u6d4b \u7269\u4f53 \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002 \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 \uff0c \u5728 \u865a\u5e7b \u5f15\u64ce \u4e16\u754c \u91cc \uff0c \u7a7a\u95f4 \u5750\u6807 \u7684 \u5355\u4f4d \u662f \u5398\u7c73 \u3002 \u5176 \u8bbe\u8ba1 \u57fa\u4e8e \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89c9 \uff1a X \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411\u524d \uff0c Y \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411 \u53f3 \uff0c Z \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411\u4e0a \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5bf9\u8c61 \u7c7b\u578b \u3002 actor _ dynamics ( ad . rss . world . RssDynamics ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 ) \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \u3002 rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) \u8be6\u7ec6 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4e16\u754c \u4fe1\u606f \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 ) \u83b7\u53d6 \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 ) \u5728 \u83b7\u53d6 \u5230 \u7684 carla . SemanticLidarDetection \u6570\u636e \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self ) carla . Sensor \u4ece carla . Actor \u7ee7\u627f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6784\u6210 \u4e86 \u4e00\u4e2a \u975e\u5e38 \u591a\u6837 \u591a\u6837\u5316 \u548c \u72ec\u7279 \u7684 \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5bb6\u65cf \u3002 \u5b83\u4eec \u901a\u5e38 \u662f \u4f5c\u4e3a \u8f66\u8f86 \u7684 \u9644\u4ef6 / \u513f\u5b50 \u800c \u4ea7\u751f \u7684 \uff08 \u770b\u770b carla . World \u6765 \u4e86\u89e3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u751f\u6210 \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7ecf\u8fc7 \u7cbe\u5fc3 \u8bbe\u8ba1 \u7cbe\u5fc3\u8bbe\u8ba1 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u5b83\u4eec \u6b63\u5728 \u76d1\u542c \u7684 \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u88ab \u5f62\u6210 \u4e3a \u4ece carla . SensorData \u7ee7\u627f \u7684 \u4e0d\u540c \u5b50\u7c7b \u3002 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u5206\u4e3a \u4e24\u7ec4 \uff1a \u4e00\u7ec4 \u5728 \u6bcf\u4e2a \u8282\u62cd \u4e2d \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff08 \u76f8\u673a \u3001 \u70b9\u4e91 \u548c \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \uff0c \u4e00\u7ec4 \u53e6\u4e00\u7ec4 \u4ec5 \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff08 \u89e6\u53d1 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \uff09 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u5957 \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5b83\u4eec \u7684 \u84dd\u56fe \u53ef\u4ee5 \u5728 carla . BlueprintLibrary \u4e2d \u627e\u5230 \u3002 \u5173\u4e8e \u4ed6\u4eec \u7684 \u504f\u597d \u548c \u653e\u7f6e \u4f4d\u7f6e \u7684 \u6240\u6709 \u4fe1\u606f \u90fd \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u627e\u5230 \uff0c \u4f46 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carla \u4e2d \u53ef\u7528 \u7684 \u4fe1\u606f \u5217\u8868 \u5982\u4e0b \u3002 \u6bcf\u4e2a \u8282\u62cd \u63a5\u6536 \u7684 \u6570\u636e \u3002 - \u6df1\u5ea6 \u76f8\u673a - \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 - SemanticLidar \u5149\u7ebf \u6295\u5c04 - \u96f7\u8fbe - RGB \u76f8\u673a - \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4ec5 \u5728 \u89e6\u53d1 \u65f6 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 - \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . - \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . - \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . \u5b9e\u4f8b \u53d8\u91cf is _ listening ( boolean ) \u5f53\u4e3a True \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u7b49\u5f85 \u6570\u636e \u3002 \u65b9\u6cd5 disable _ for _ ros ( self ) \u5982\u679c \u6ca1\u6709 \u4efb\u4f55 \u76d1\u542c \uff0c \u5219 \u547d\u4ee4 \u4e0d \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u5728 ROS2 \u4e2d \u53d1\u5e03 \u3002 enable _ for _ ros ( self ) \u547d\u4ee4 \u8981 \u5904\u7406 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u80fd\u591f \u5728 ROS2 \u4e2d \u53d1\u5e03 \uff0c \u800c \u65e0\u9700 \u4efb\u4f55 \u76d1\u542c \u3002 is _ enabled _ for _ ros ( self ) \u5982\u679c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u542f\u7528 \uff0c \u5219 \u8fd4\u56de \uff1b \u5982\u679c \u6ca1\u6709 \u4efb\u4f55 \u76d1\u542c \uff0c \u5219 \u4e0d \u5728 ROS2 \u4e2d \u53d1\u5e03 \u3002 \u8fd4\u56de \uff1a bool is _ listening ( self ) \u8fd4\u56de \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5904\u4e8e \u76d1\u542c \u72b6\u6001 \u3002 \u8fd4\u56de \uff1a bool is _ listening _ gbuffer ( self , gbuffer _ id ) \u8fd4\u56de \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5904\u4e8e \u7279\u5b9a GBuffer \u7eb9\u7406 \u7684 \u76d1\u542c \u72b6\u6001 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u76ee\u6807 \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 \u8fd4\u56de \uff1a bool listen ( self , callback ) snippet \u2192 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u6d4b\u91cf \u503c\u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \uff1a callback ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u6709 \u4e00\u4e2a \u53c2\u6570 \u5305\u542b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 listen _ to _ gbuffer ( self , gbuffer _ id , callback ) \u6bcf\u6b21 \u63a5\u6536 \u5230 \u6240 \u9700 \u7684 GBuffer \u7eb9\u7406 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u76ee\u6807 \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 callback ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u6709 \u4e00\u4e2a \u53c2\u6570 \uff0c \u5176\u4e2d \u5305\u542b \u63a5\u6536 \u5230 \u7684 GBuffer \u7eb9\u7406 \u3002 stop ( self ) \u547d\u4ee4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u505c\u6b62 \u76d1\u542c \u6570\u636e \u3002 stop _ gbuffer ( self , gbuffer _ id ) \u547d\u4ee4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u505c\u6b62 \u76d1\u542c \u6307\u5b9a \u7684 GBuffer \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . SensorData \u5305\u542b carla . Sensor \u751f\u6210 \u7684 \u6570\u636e \u7684 \u6240\u6709 \u5bf9\u8c61 \u7684 \u57fa\u7c7b \u3002 \u8fd9\u4e2a \u5bf9\u8c61 \u5e94\u8be5 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u76d1\u542c \u7684 \u51fd\u6570 \u7684 \u53c2\u6570 \uff0c \u4ee5\u4fbf \u4e0e \u5b83\u4eec \u4e00\u8d77 \u5de5\u4f5c \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u7279\u5b9a \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4ee5\u4e0b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u76f8\u5e94 \u6570\u636e \u7684 \u5217\u8868 \u3002 - \u76f8\u673a ( RGB , \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) : carla . Image . - \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . CollisionEvent . - \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . GnssMeasurement . - \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . IMUMeasurement . - \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . LaneInvasionEvent . - \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . LidarMeasurement . - \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . ObstacleDetectionEvent . - \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . RadarMeasurement . - \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . RssResponse . - \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . SemanticLidarMeasurement . - V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u611f\u77e5 \u4fe1\u606f \uff1a carla . CAMEvent . - \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . CustomV2XEvent . \u5b9e\u4f8b \u53d8\u91cf frame ( int ) \u751f\u6210 \u6570\u636e \u65f6 \u7684 \u5e27 \u6570 \u3002 timestamp ( float - seconds ) \u751f\u6210 \u6570\u636e \u7684 \u6a21\u62df \u65f6\u95f4 \u3002 transform ( carla . Transform ) \u6570\u636e \u751f\u6210 \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f6c\u6362 \u3002 carla . TextureColor \u7c7b \u8868\u793a \u8981 \u4e0a \u4f20\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7eb9\u7406 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u683c\u5f0f \u4e3a RGBA \uff0c \u6bcf\u4e2a \u901a\u9053 \u4e3a uint8 \u3002 \u5b9e\u4f8b \u53d8\u91cf width ( int ) \u7eb9\u7406 \u7684 X \u5750\u6807 \u5927\u5c0f \u3002 height ( int ) \u7eb9\u7406 \u7684 Y \u5750\u6807 \u5927\u5c0f \u3002 \u65b9\u6cd5 __ init __ ( self , width , height ) \u4f7f\u7528 \uff08 width , height \uff09 \u5927\u5c0f \u521d\u59cb \u521d\u59cb\u5316 \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) get ( self , x , y ) \u83b7\u53d6 \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) \u8fd4\u56de : carla . Color set ( self , x , y , value ) \u7528\u503c value \u8bbe\u7f6e \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) value ( carla . Color ) \u8bbe\u7f6e \u5668 set _ dimensions ( self , width , height ) \u5c06 \u7eb9\u7406 \u8c03\u6574 \u5230 \u6307\u5b9a \u7684 \u5c3a\u5bf8 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) carla . TextureFloatColor \u7c7b \u8868\u793a \u8981 \u4e0a \u4f20\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7eb9\u7406 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u683c\u5f0f \u4e3a RGBA \uff0c \u6bcf\u4e2a \u901a\u9053 \u7684 \u662f float \u3002 \u5b9e\u4f8b \u53d8\u91cf width ( int ) \u7eb9\u7406 \u7684 X \u5750\u6807 \u5927\u5c0f \u3002 height ( int ) \u7eb9\u7406 \u7684 Y \u5750\u6807 \u5927\u5c0f \u3002 \u65b9\u6cd5 __ init __ ( self , width , height ) \u4f7f\u7528 \uff08 width , height \uff09 \u5927\u5c0f \u521d\u59cb \u521d\u59cb\u5316 \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) get ( self , x , y ) \u83b7\u53d6 \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) \u8fd4\u56de : carla . FloatColor set ( self , x , y , value ) \u7528\u503c value \u8bbe\u7f6e \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) value ( carla . FloatColor ) \u8bbe\u7f6e \u5668 set _ dimensions ( self , width , height ) \u5c06 \u7eb9\u7406 \u8c03\u6574 \u5230 \u6307\u5b9a \u7684 \u5c3a\u5bf8 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) carla . Timestamp \u5305\u542b \u6a21\u62df \u6570\u636e \u65f6\u95f4 \u4fe1\u606f \u7684 \u7c7b \u3002 \u6b64 \u4fe1\u606f \u5c06 \u4f5c\u4e3a carla . WorldSnapshot \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u81ea\u52a8 \u52a8\u68c0 \u68c0\u7d22 \u81ea\u52a8\u68c0\u7d22 \u3002 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u83b7\u5f97 \u7684 \uff0c \u4f46 \u4e5f \u53ef\u80fd \u7528\u4e8e \u8bb8\u591a \u5176\u4ed6 \u60c5\u51b5 \uff0c \u5982 carla . Sensor \u6b63\u5728 \u68c0\u7d22 \u6570\u636e \u3002 \u5b9e\u4f8b \u53d8\u91cf frame ( int ) \u81ea \u6a21\u62df \u6a21\u62df\u5668 \u542f\u52a8 \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u5e27 \u6570 \u3002 elapsed _ seconds ( float - seconds ) \u81ea \u5f53\u524d \u5267\u96c6 \u5f00\u59cb \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u6a21\u62df \u79d2\u6570 \u3002 delta _ seconds ( float - seconds ) \u81ea\u4e0a \u4e00\u5e27 \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u6a21\u62df \u79d2\u6570 \u3002 platform _ timestamp ( float - seconds ) \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u7684 \u8fdb\u884c \u6b64 \u6d4b\u91cf \u7684 \u5e27 \u7684 \u65f6\u95f4 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \uff0c \u5355\u4f4d \u4e3a \u79d2 \u3002 \u65b9\u6cd5 __ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) \u53c2\u6570 \uff1a frame ( int ) elapsed _ seconds ( float - \u79d2 ) delta _ seconds ( float - \u79d2 ) platform _ timestamp ( float - \u79d2 ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self ) carla . TrafficLight \u4ece carla . TrafficSign \u7ee7\u627f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u88ab \u8ba4\u4e3a \u662f \u4e00\u79cd \u7279\u5b9a \u7c7b\u578b \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 \u7531\u4e8e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5927\u591a \u51fa\u73b0 \u5728 \u8def\u53e3 \uff0c \u56e0\u6b64 \u5b83\u4eec \u5c5e\u4e8e \u4e00\u4e2a \u5305\u542b \u4e0d\u540c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u7ec4 \u3002 \u5728 \u7ec4\u5185 \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u901a\u8fc7 \u5176\u6746 \u6307\u6570 \u8fdb\u884c \u533a\u5206 \u3002 \u5728 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \u5185 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u4ee5 \u5faa\u73af \u6a21\u5f0f \u53d8\u5316 \uff1a \u9009\u62e9 \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5b83 \u5728 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u6700\u7ec8 \u7ea2\u8272 \u4e2d \u505c\u7559 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u3002 \u5176\u4f59 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 \u6574\u4e2a \u8fc7\u7a0b \u4e2d \u90fd \u4fdd\u6301 \u7ea2\u8272 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5728 \u5faa\u73af \u7684 \u6700\u540e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u6709 \u4e00\u4e2a \u95f4\u9699 \uff0c \u6240\u6709 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u4f46\u662f \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u53ef\u4ee5 \u624b\u52a8 \u6539\u53d8 \u3002 \u5b9e\u4f8b \u53d8\u91cf state ( carla . TrafficLightState ) \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u65b9\u6cd5 freeze ( self , freeze ) \u5728 \u5f53\u524d \u72b6\u6001 \u5c06 \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u505c\u6b62 \u3002 \u53c2\u6570 \uff1a freeze ( bool ) is _ frozen ( self ) \u5982\u679c \u4ea4\u901a \u4ea4\u901a\u706f \u6839\u636e \u4e0a\u6b21 \u52fe\u9009 \u88ab \u51bb\u7ed3 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u8fd4\u56de True \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : bool reset _ group ( self ) \u5c06 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u91cd\u7f6e \u4e3a \u6a21\u62df \u5f00\u59cb \u65f6 \u7684 \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \u3002 Note : \u6b64 \u65b9\u6cd5 \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8bbe\u7f6e \u5668 get _ affected _ lane _ waypoints ( self ) \u8fd4\u56de \u4e00\u4e2a \u8def\u5f84 \u70b9 \u5217\u8868 \uff0c \u6307\u793a \u4ea4\u901a \u4ea4\u901a\u706f \u4ea7\u751f \u5f71\u54cd \u7684 \u4f4d\u7f6e \u548c \u8f66\u9053 \u3002 \u8fd4\u56de : list ( carla . Waypoint ) get _ elapsed _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u4e0a\u6b21 \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u81ea \u5f53\u524d \u706f\u5149 \u72b6\u6001 \u5f00\u59cb \u4ee5\u6765 \u7684 \u65f6\u95f4 \uff08 \u79d2 \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds get _ green _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4e3a \u7eff\u706f \u8bbe\u7f6e \u7684 \u65f6\u95f4 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) \u8fd4\u56de \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6240\u5c5e \u7ec4\u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) Note : \u6b64 \u65b9\u6cd5 \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 get _ light _ boxes ( self ) \u8fd4\u56de \u4e00\u4e2a \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u6bcf\u4e2a \u706f\u7bb1 \u7684 \u8fb9\u754c \u6846 \u5217\u8868 \u3002 \u8fd4\u56de : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) \u8fd4\u56de \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 OpenDRIVE id \u3002 \u8fd4\u56de : str get _ pole _ index ( self ) \u8fd4\u56de \u5c06 \u5176 \u6807\u8bc6 \u4e3a \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6746 \u7684 \u7d22\u5f15 \u3002 \u8fd4\u56de : int get _ red _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u53d8\u7ea2 \u7684 \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ red _ time get _ state ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : carla . TrafficLightState \u8bbe\u7f6e \u8d77 \uff1a carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) \u8fd4\u56de \u6307\u793a \u4ea4\u901a \u4ea4\u901a\u706f \u505c\u6b62 \u4f4d\u7f6e \u7684 \u8def\u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u8def\u70b9 \u662f \u6839\u636e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u89e6\u53d1 \u6846 \u8ba1\u7b97 \u7b97\u51fa \u51fa\u6765 \u8ba1\u7b97\u51fa\u6765 \u7684 \uff0c \u8fd9\u4e9b \u89e6\u53d1 \u6846 \u6307\u793a \u8f66\u8f86 \u5e94\u8be5 \u505c \u5728 \u54ea\u91cc \u3002 \u8fd4\u56de : list ( carla . Waypoint ) get _ yellow _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4e3a \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u9ec4\u8272 \u7684 \u65f6\u95f4 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - \u79d2 \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ yellow _ time \u8bbe\u7f6e \u5668 set _ green _ time ( self , green _ time ) \u53c2\u6570 \uff1a green _ time ( float - \u79d2 ) - \u8bbe\u7f6e \u7eff\u706f \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) \u8bbe\u7f6e \u7ea2\u8272 \u72b6\u6001 \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a red _ time ( float - \u79d2 ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 \u5c06 \u7ed9\u5b9a \u72b6\u6001 \u8bbe\u7f6e \u4e3a \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53c2\u6570 \uff1a state ( carla . TrafficLightState ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) \u8bbe\u7f6e \u9ec4\u706f \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a 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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u884c\u4eba \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 \u884c\u4eba \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 ( carla . Waypoint ) ] get _ port ( self ) \u8fd4\u56de \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8def\u5f84 \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 \u9500\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 ) - \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 - \u5343\u7c73 / \u5c0f\u65f6 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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u884c\u4eba \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 \u7236\u7ea7 \u9aa8\u9abc \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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9\u662f \u5b83\u4eec \u5c06 \u63a7\u5236 \u7684 \u884c\u4eba \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 \u4eff\u771f \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 \u884c\u4eba \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 \u884c\u4eba \u63d0\u4f9b \u9aa8\u9abc \u7279\u5b9a \u7684 \u64cd\u4f5c \u3002 \u4e3a\u4e86 \u6e05\u6670 \u8d77 \u89c1 \uff0c \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u884c\u4eba \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 \u8def\u5f84 \u70b9 \u88ab \u63cf\u8ff0 \u4e3a \u4e09\u7ef4 \u6709 \u5411 \u70b9 \u3002 \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u53ef\u4ee5 \u5b9a\u4f4d \u9053\u8def \u4e2d \u7684 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) - \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) - \u8def\u5f84 \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 \u8def\u5f84 \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u9053\u8def \u4e0a \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u8def\u5f84 \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 \u8def\u5f84 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \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 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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u4eff\u771f \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 \u8282\u62cd \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 \u5728 carla . Vehicle \u4e2d apply _ control ( ) \u547d\u4ee4 \u8fdb\u884c \u9002\u5e94 \uff0c \u5b9e\u73b0 \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 ( ) \u547d\u4ee4 \u7684 \u6539\u7f16 \u7248 \uff0c \u5c06 \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5df2\u7ecf \u88ab \u9500\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 \u9500\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"},{"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 \uff0c \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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/#_27","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlacamevent","text":"\u7ee7\u627f \u81ea carla . SensorData \u5b9a\u4e49 sensor . other . v2x \u63d0\u4f9b \u7684 \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9\u662f \u4e00\u79cd \u96c6\u5408 \u7c7b\u578b \uff0c \u7528\u4e8e \u7ec4\u5408 \u8fd4\u56de \u591a\u4e2a CAMData \u3002","title":"carla . CAMEvent"},{"location":"python_api/#_28","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_29","text":"get _ message _ count ( self ) \u83b7\u53d6 \u63a5\u53d7 \u5230 \u7684 CAM \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_30","text":"__ get _ item __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u5230 \u7684 CAMData \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self )","title":"\u9b54\u672f \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/#_31","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 \u884c\u4eba \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 \u884c\u4eba \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 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002","title":"carla . Client"},{"location":"python_api/#_32","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 Carla \u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 ) \u4f7f\u7528 map _ name \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u4eca \u4eca\u4e16 \u4e16\u754c \u5f53\u4eca\u4e16\u754c \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \u3002 \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 \u9500\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 \u9500\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 ' = \u884c\u4eba ' 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/#_33","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 \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u6307\u5b9a \u8981 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5730\u56fe \u4e0a \u67e5\u770b \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8be5 \u53c2\u6570 \u4e3a\u7a7a \u5c06 \u9012\u5f52 \u641c\u7d22 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u6240\u6709 \u5730\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5982\u679c \u60a8 \u4e0d \u719f\u6089 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5730\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u7f13\u5b58 \u4e2d \u5c1a\u672a \u5b58\u5728 \u7684 \u6587\u4ef6 \u3002 \u7f13\u5b58 \u53ef\u4ee5 \u5728 HOME \\ carlaCache \u6216 USERPROFILE \\ carlaCache \u4e2d \u627e\u5230 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 version . h \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 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_34","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 \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/#_35","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 \u51b2\u91cf \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/#_36","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/#_37","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/#_38","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/#carlacustomv2xdata","text":"\u7ee7\u627f \u81ea carla . SensorData \u8fd9\u662f \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u7684 \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u3002 \u4f5c\u4e3a CustomV2XEvent \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u63a5\u6536 \u3002","title":"carla . CustomV2XData"},{"location":"python_api/#_39","text":"power ( float - \u6beb\u74e6 \u5206\u8d1d dBm ) \u63a5\u6536 \u529f\u7387 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_40","text":"get ( self ) \u83b7\u53d6 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u3002 \u8fd4\u56de \u5305\u542b \u6d88\u606f \u7684 \u5d4c\u5957 \u5b57\u5178 \u3002 \u5b83 \u6709 \u4e24\u4e2a \u4e3b\u952e \uff1a - Header : dict - Message : str . \u8fd4\u56de \uff1a dict","title":"\u65b9\u6cd5"},{"location":"python_api/#_41","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlacustomv2xevent","text":"\u7ee7\u627f \u81ea carla . SensorData \u5b9a\u4e49 sensor . other . v2x _ custom \u63d0\u4f9b \u7684 \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9\u662f \u4e00\u79cd \u96c6\u5408 \u7c7b\u578b \uff0c \u7528\u4e8e \u7ec4\u5408 \u8fd4\u56de \u591a\u4e2a CustomV2XData \u3002","title":"carla . CustomV2XEvent"},{"location":"python_api/#_42","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_43","text":"get _ message _ count ( self ) \u83b7\u53d6 \u63a5\u53d7 \u5230 \u7684 CAM \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_44","text":"__ get _ item __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u7684 CustomV2XData \u6570\u636e \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"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/#_45","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/#_46","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/#_47","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/#_48","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/#_49","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 1 \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/#_50","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 \u4f53 \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 \u4f53 \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/#_51","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/#_52","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/#_53","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/#_54","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 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002","title":"carla . GBufferTextureID"},{"location":"python_api/#_55","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/#_56","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/#_57","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/#_58","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 \u897f / \u4e1c\u503c \u3002 altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_59","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/#_60","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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \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/#_61","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 \u897f / \u4e1c\u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_62","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_63","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/#_64","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/#_65","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_66","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/#_67","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/#_68","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/#_69","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/#_70","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/#_71","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_72","text":"get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u8def\u5f84 \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 \u8def\u5f84 \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/#_73","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 \u8def\u5f84 \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002","title":"carla . Landmark"},{"location":"python_api/#_74","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 \u8def\u5f84 \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8def\u5f84 \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/#_75","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_76","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/#_77","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/#_78","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 \u8def\u5f84 \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002","title":"carla . LaneChange"},{"location":"python_api/#_79","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 \u538b\u7ebf \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 \u538b\u7ebf \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/#_80","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/#_81","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_82","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/#_83","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/#_84","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 \u8def\u5f84 \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/#_85","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/#_86","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/#_87","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/#_88","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_89","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/#_90","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/#_91","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/#_92","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/#_93","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/#_94","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/#_95","text":"turn _ off ( self ) \u5173\u95ed \u706f \u3002 turn _ on ( self ) \u6253\u5f00 \u706f \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_96","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/#_97","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/#_98","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/#_99","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/#_100","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/#_101","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/#_102","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/#_103","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/#_104","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/#_105","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 \u8def\u5f84 \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/#_106","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/#_107","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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_108","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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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/#_109","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/#_110","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/#_111","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/#_112","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/#_113","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_114","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/#_115","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/#_116","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/#_117","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_118","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/#_119","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/#_120","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/#_121","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/#_122","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/#_123","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/#_124","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/#_125","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_126","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/#_127","text":"altitude ( float - radians ) \u68c0\u6d4b \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth ( float - radians ) \u68c0\u6d4b \u7684 \u65b9\u4f4d \u65b9\u4f4d\u89d2 \u3002 depth ( float - \u7c73 ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u68c0\u6d4b \u4f4d\u7f6e \u7684 \u8ddd\u79bb \u3002 velocity ( float - m / s ) \u88ab \u68c0\u6d4b \u7269\u4f53 \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_128","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_129","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/#_130","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/#_131","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_132","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/#_133","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 \uff0c \u5728 \u865a\u5e7b \u5f15\u64ce \u4e16\u754c \u91cc \uff0c \u7a7a\u95f4 \u5750\u6807 \u7684 \u5355\u4f4d \u662f \u5398\u7c73 \u3002 \u5176 \u8bbe\u8ba1 \u57fa\u4e8e \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89c9 \uff1a X \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411\u524d \uff0c Y \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411 \u53f3 \uff0c Z \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411\u4e0a \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/#_134","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/#_135","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/#_136","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/#_137","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/#_138","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/#_139","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_140","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/#_141","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5bf9\u8c61 \u7c7b\u578b \u3002 actor _ dynamics ( ad . rss . world . RssDynamics ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_142","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_143","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/#_144","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/#_145","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_146","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/#_147","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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/#_148","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 ) \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \u3002 rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) \u8be6\u7ec6 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u60c5\u51b5 \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/#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/#_151","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/#_152","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/#_153","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4e16\u754c \u4fe1\u606f \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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/#_154","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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/#_155","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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/#_156","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/#_157","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/#_158","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/#_159","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_160","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 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \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/#_161","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u7ec4\u6210 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_162","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/#_163","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":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_164","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u5230 \u7684 carla . SemanticLidarDetection \u6570\u636e \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ 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 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6784\u6210 \u4e86 \u4e00\u4e2a \u975e\u5e38 \u591a\u6837 \u591a\u6837\u5316 \u548c \u72ec\u7279 \u7684 \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5bb6\u65cf \u3002 \u5b83\u4eec \u901a\u5e38 \u662f \u4f5c\u4e3a \u8f66\u8f86 \u7684 \u9644\u4ef6 / \u513f\u5b50 \u800c \u4ea7\u751f \u7684 \uff08 \u770b\u770b carla . World \u6765 \u4e86\u89e3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u751f\u6210 \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7ecf\u8fc7 \u7cbe\u5fc3 \u8bbe\u8ba1 \u7cbe\u5fc3\u8bbe\u8ba1 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u5b83\u4eec \u6b63\u5728 \u76d1\u542c \u7684 \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u88ab \u5f62\u6210 \u4e3a \u4ece carla . SensorData \u7ee7\u627f \u7684 \u4e0d\u540c \u5b50\u7c7b \u3002 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u5206\u4e3a \u4e24\u7ec4 \uff1a \u4e00\u7ec4 \u5728 \u6bcf\u4e2a \u8282\u62cd \u4e2d \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff08 \u76f8\u673a \u3001 \u70b9\u4e91 \u548c \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \uff0c \u4e00\u7ec4 \u53e6\u4e00\u7ec4 \u4ec5 \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff08 \u89e6\u53d1 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \uff09 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u5957 \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5b83\u4eec \u7684 \u84dd\u56fe \u53ef\u4ee5 \u5728 carla . BlueprintLibrary \u4e2d \u627e\u5230 \u3002 \u5173\u4e8e \u4ed6\u4eec \u7684 \u504f\u597d \u548c \u653e\u7f6e \u4f4d\u7f6e \u7684 \u6240\u6709 \u4fe1\u606f \u90fd \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u627e\u5230 \uff0c \u4f46 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carla \u4e2d \u53ef\u7528 \u7684 \u4fe1\u606f \u5217\u8868 \u5982\u4e0b \u3002 \u6bcf\u4e2a \u8282\u62cd \u63a5\u6536 \u7684 \u6570\u636e \u3002 - \u6df1\u5ea6 \u76f8\u673a - \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 - SemanticLidar \u5149\u7ebf \u6295\u5c04 - \u96f7\u8fbe - RGB \u76f8\u673a - \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4ec5 \u5728 \u89e6\u53d1 \u65f6 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 - \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . - \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . - \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 .","title":"carla . Sensor"},{"location":"python_api/#_165","text":"is _ listening ( boolean ) \u5f53\u4e3a True \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u7b49\u5f85 \u6570\u636e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_166","text":"disable _ for _ ros ( self ) \u5982\u679c \u6ca1\u6709 \u4efb\u4f55 \u76d1\u542c \uff0c \u5219 \u547d\u4ee4 \u4e0d \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u5728 ROS2 \u4e2d \u53d1\u5e03 \u3002 enable _ for _ ros ( self ) \u547d\u4ee4 \u8981 \u5904\u7406 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u80fd\u591f \u5728 ROS2 \u4e2d \u53d1\u5e03 \uff0c \u800c \u65e0\u9700 \u4efb\u4f55 \u76d1\u542c \u3002 is _ enabled _ for _ ros ( self ) \u5982\u679c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u542f\u7528 \uff0c \u5219 \u8fd4\u56de \uff1b \u5982\u679c \u6ca1\u6709 \u4efb\u4f55 \u76d1\u542c \uff0c \u5219 \u4e0d \u5728 ROS2 \u4e2d \u53d1\u5e03 \u3002 \u8fd4\u56de \uff1a bool is _ listening ( self ) \u8fd4\u56de \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5904\u4e8e \u76d1\u542c \u72b6\u6001 \u3002 \u8fd4\u56de \uff1a bool is _ listening _ gbuffer ( self , gbuffer _ id ) \u8fd4\u56de \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5904\u4e8e \u7279\u5b9a GBuffer \u7eb9\u7406 \u7684 \u76d1\u542c \u72b6\u6001 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u76ee\u6807 \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 \u8fd4\u56de \uff1a bool listen ( self , callback ) snippet \u2192 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u6d4b\u91cf \u503c\u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \uff1a callback ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u6709 \u4e00\u4e2a \u53c2\u6570 \u5305\u542b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 listen _ to _ gbuffer ( self , gbuffer _ id , callback ) \u6bcf\u6b21 \u63a5\u6536 \u5230 \u6240 \u9700 \u7684 GBuffer \u7eb9\u7406 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u76ee\u6807 \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 callback ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u6709 \u4e00\u4e2a \u53c2\u6570 \uff0c \u5176\u4e2d \u5305\u542b \u63a5\u6536 \u5230 \u7684 GBuffer \u7eb9\u7406 \u3002 stop ( self ) \u547d\u4ee4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u505c\u6b62 \u76d1\u542c \u6570\u636e \u3002 stop _ gbuffer ( self , gbuffer _ id ) \u547d\u4ee4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u505c\u6b62 \u76d1\u542c \u6307\u5b9a \u7684 GBuffer \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_167","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasensordata","text":"\u5305\u542b carla . Sensor \u751f\u6210 \u7684 \u6570\u636e \u7684 \u6240\u6709 \u5bf9\u8c61 \u7684 \u57fa\u7c7b \u3002 \u8fd9\u4e2a \u5bf9\u8c61 \u5e94\u8be5 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u76d1\u542c \u7684 \u51fd\u6570 \u7684 \u53c2\u6570 \uff0c \u4ee5\u4fbf \u4e0e \u5b83\u4eec \u4e00\u8d77 \u5de5\u4f5c \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u7279\u5b9a \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4ee5\u4e0b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u76f8\u5e94 \u6570\u636e \u7684 \u5217\u8868 \u3002 - \u76f8\u673a ( RGB , \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) : carla . Image . - \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . CollisionEvent . - \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . GnssMeasurement . - \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . IMUMeasurement . - \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . LaneInvasionEvent . - \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . LidarMeasurement . - \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . ObstacleDetectionEvent . - \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . RadarMeasurement . - \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . RssResponse . - \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . SemanticLidarMeasurement . - V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u611f\u77e5 \u4fe1\u606f \uff1a carla . CAMEvent . - \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . CustomV2XEvent .","title":"carla . SensorData"},{"location":"python_api/#_168","text":"frame ( int ) \u751f\u6210 \u6570\u636e \u65f6 \u7684 \u5e27 \u6570 \u3002 timestamp ( float - seconds ) \u751f\u6210 \u6570\u636e \u7684 \u6a21\u62df \u65f6\u95f4 \u3002 transform ( carla . Transform ) \u6570\u636e \u751f\u6210 \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f6c\u6362 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatexturecolor","text":"\u7c7b \u8868\u793a \u8981 \u4e0a \u4f20\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7eb9\u7406 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u683c\u5f0f \u4e3a RGBA \uff0c \u6bcf\u4e2a \u901a\u9053 \u4e3a uint8 \u3002","title":"carla . TextureColor"},{"location":"python_api/#_169","text":"width ( int ) \u7eb9\u7406 \u7684 X \u5750\u6807 \u5927\u5c0f \u3002 height ( int ) \u7eb9\u7406 \u7684 Y \u5750\u6807 \u5927\u5c0f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_170","text":"__ init __ ( self , width , height ) \u4f7f\u7528 \uff08 width , height \uff09 \u5927\u5c0f \u521d\u59cb \u521d\u59cb\u5316 \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) get ( self , x , y ) \u83b7\u53d6 \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) \u8fd4\u56de : carla . Color set ( self , x , y , value ) \u7528\u503c value \u8bbe\u7f6e \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) value ( carla . Color )","title":"\u65b9\u6cd5"},{"location":"python_api/#_171","text":"set _ dimensions ( self , width , height ) \u5c06 \u7eb9\u7406 \u8c03\u6574 \u5230 \u6307\u5b9a \u7684 \u5c3a\u5bf8 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatexturefloatcolor","text":"\u7c7b \u8868\u793a \u8981 \u4e0a \u4f20\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7eb9\u7406 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u683c\u5f0f \u4e3a RGBA \uff0c \u6bcf\u4e2a \u901a\u9053 \u7684 \u662f float \u3002","title":"carla . TextureFloatColor"},{"location":"python_api/#_172","text":"width ( int ) \u7eb9\u7406 \u7684 X \u5750\u6807 \u5927\u5c0f \u3002 height ( int ) \u7eb9\u7406 \u7684 Y \u5750\u6807 \u5927\u5c0f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_173","text":"__ init __ ( self , width , height ) \u4f7f\u7528 \uff08 width , height \uff09 \u5927\u5c0f \u521d\u59cb \u521d\u59cb\u5316 \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) get ( self , x , y ) \u83b7\u53d6 \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) \u8fd4\u56de : carla . FloatColor set ( self , x , y , value ) \u7528\u503c value \u8bbe\u7f6e \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) value ( carla . FloatColor )","title":"\u65b9\u6cd5"},{"location":"python_api/#_174","text":"set _ dimensions ( self , width , height ) \u5c06 \u7eb9\u7406 \u8c03\u6574 \u5230 \u6307\u5b9a \u7684 \u5c3a\u5bf8 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatimestamp","text":"\u5305\u542b \u6a21\u62df \u6570\u636e \u65f6\u95f4 \u4fe1\u606f \u7684 \u7c7b \u3002 \u6b64 \u4fe1\u606f \u5c06 \u4f5c\u4e3a carla . WorldSnapshot \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u81ea\u52a8 \u52a8\u68c0 \u68c0\u7d22 \u81ea\u52a8\u68c0\u7d22 \u3002 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u83b7\u5f97 \u7684 \uff0c \u4f46 \u4e5f \u53ef\u80fd \u7528\u4e8e \u8bb8\u591a \u5176\u4ed6 \u60c5\u51b5 \uff0c \u5982 carla . Sensor \u6b63\u5728 \u68c0\u7d22 \u6570\u636e \u3002","title":"carla . Timestamp"},{"location":"python_api/#_175","text":"frame ( int ) \u81ea \u6a21\u62df \u6a21\u62df\u5668 \u542f\u52a8 \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u5e27 \u6570 \u3002 elapsed _ seconds ( float - seconds ) \u81ea \u5f53\u524d \u5267\u96c6 \u5f00\u59cb \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u6a21\u62df \u79d2\u6570 \u3002 delta _ seconds ( float - seconds ) \u81ea\u4e0a \u4e00\u5e27 \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u6a21\u62df \u79d2\u6570 \u3002 platform _ timestamp ( float - seconds ) \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u7684 \u8fdb\u884c \u6b64 \u6d4b\u91cf \u7684 \u5e27 \u7684 \u65f6\u95f4 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \uff0c \u5355\u4f4d \u4e3a \u79d2 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_176","text":"__ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) \u53c2\u6570 \uff1a frame ( int ) elapsed _ seconds ( float - \u79d2 ) delta _ seconds ( float - \u79d2 ) platform _ timestamp ( float - \u79d2 )","title":"\u65b9\u6cd5"},{"location":"python_api/#_177","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 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u88ab \u8ba4\u4e3a \u662f \u4e00\u79cd \u7279\u5b9a \u7c7b\u578b \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 \u7531\u4e8e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5927\u591a \u51fa\u73b0 \u5728 \u8def\u53e3 \uff0c \u56e0\u6b64 \u5b83\u4eec \u5c5e\u4e8e \u4e00\u4e2a \u5305\u542b \u4e0d\u540c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u7ec4 \u3002 \u5728 \u7ec4\u5185 \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u901a\u8fc7 \u5176\u6746 \u6307\u6570 \u8fdb\u884c \u533a\u5206 \u3002 \u5728 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \u5185 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u4ee5 \u5faa\u73af \u6a21\u5f0f \u53d8\u5316 \uff1a \u9009\u62e9 \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5b83 \u5728 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u6700\u7ec8 \u7ea2\u8272 \u4e2d \u505c\u7559 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u3002 \u5176\u4f59 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 \u6574\u4e2a \u8fc7\u7a0b \u4e2d \u90fd \u4fdd\u6301 \u7ea2\u8272 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5728 \u5faa\u73af \u7684 \u6700\u540e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u6709 \u4e00\u4e2a \u95f4\u9699 \uff0c \u6240\u6709 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u4f46\u662f \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u53ef\u4ee5 \u624b\u52a8 \u6539\u53d8 \u3002","title":"carla . TrafficLight"},{"location":"python_api/#_178","text":"state ( carla . TrafficLightState ) \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_179","text":"freeze ( self , freeze ) \u5728 \u5f53\u524d \u72b6\u6001 \u5c06 \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u505c\u6b62 \u3002 \u53c2\u6570 \uff1a freeze ( bool ) is _ frozen ( self ) \u5982\u679c \u4ea4\u901a \u4ea4\u901a\u706f \u6839\u636e \u4e0a\u6b21 \u52fe\u9009 \u88ab \u51bb\u7ed3 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u8fd4\u56de True \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : bool reset _ group ( self ) \u5c06 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u91cd\u7f6e \u4e3a \u6a21\u62df \u5f00\u59cb \u65f6 \u7684 \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \u3002 Note : \u6b64 \u65b9\u6cd5 \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_180","text":"get _ affected _ lane _ waypoints ( self ) \u8fd4\u56de \u4e00\u4e2a \u8def\u5f84 \u70b9 \u5217\u8868 \uff0c \u6307\u793a \u4ea4\u901a \u4ea4\u901a\u706f \u4ea7\u751f \u5f71\u54cd \u7684 \u4f4d\u7f6e \u548c \u8f66\u9053 \u3002 \u8fd4\u56de : list ( carla . Waypoint ) get _ elapsed _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u4e0a\u6b21 \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u81ea \u5f53\u524d \u706f\u5149 \u72b6\u6001 \u5f00\u59cb \u4ee5\u6765 \u7684 \u65f6\u95f4 \uff08 \u79d2 \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds get _ green _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4e3a \u7eff\u706f \u8bbe\u7f6e \u7684 \u65f6\u95f4 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) \u8fd4\u56de \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6240\u5c5e \u7ec4\u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) Note : \u6b64 \u65b9\u6cd5 \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 get _ light _ boxes ( self ) \u8fd4\u56de \u4e00\u4e2a \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u6bcf\u4e2a \u706f\u7bb1 \u7684 \u8fb9\u754c \u6846 \u5217\u8868 \u3002 \u8fd4\u56de : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) \u8fd4\u56de \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 OpenDRIVE id \u3002 \u8fd4\u56de : str get _ pole _ index ( self ) \u8fd4\u56de \u5c06 \u5176 \u6807\u8bc6 \u4e3a \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6746 \u7684 \u7d22\u5f15 \u3002 \u8fd4\u56de : int get _ red _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u53d8\u7ea2 \u7684 \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ red _ time get _ state ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : carla . TrafficLightState \u8bbe\u7f6e \u8d77 \uff1a carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) \u8fd4\u56de \u6307\u793a \u4ea4\u901a \u4ea4\u901a\u706f \u505c\u6b62 \u4f4d\u7f6e \u7684 \u8def\u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u8def\u70b9 \u662f \u6839\u636e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u89e6\u53d1 \u6846 \u8ba1\u7b97 \u7b97\u51fa \u51fa\u6765 \u8ba1\u7b97\u51fa\u6765 \u7684 \uff0c \u8fd9\u4e9b \u89e6\u53d1 \u6846 \u6307\u793a \u8f66\u8f86 \u5e94\u8be5 \u505c \u5728 \u54ea\u91cc \u3002 \u8fd4\u56de : list ( carla . Waypoint ) get _ yellow _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4e3a \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u9ec4\u8272 \u7684 \u65f6\u95f4 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - \u79d2 \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ yellow _ time","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_181","text":"set _ green _ time ( self , green _ time ) \u53c2\u6570 \uff1a green _ time ( float - \u79d2 ) - \u8bbe\u7f6e \u7eff\u706f \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) \u8bbe\u7f6e \u7ea2\u8272 \u72b6\u6001 \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a red _ time ( float - \u79d2 ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 \u5c06 \u7ed9\u5b9a \u72b6\u6001 \u8bbe\u7f6e \u4e3a \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53c2\u6570 \uff1a state ( carla . TrafficLightState ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) \u8bbe\u7f6e \u9ec4\u706f \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a yellow _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ yellow _ time","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_182","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/#_183","text":"Red Yellow Green Off Unknown","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatrafficmanager","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_184","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 \u884c\u4eba \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 \u884c\u4eba \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/#_185","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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 ( carla . Waypoint ) ] get _ port ( self ) \u8fd4\u56de \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_186","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8def\u5f84 \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 \u9500\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 ) - \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_187","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/#_188","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/#_189","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/#_190","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/#_191","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/#_192","text":"x ( float ) X - axis value . y ( float ) Y - axis value .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_193","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/#_194","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/#_195","text":"x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_196","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/#_197","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/#_198","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/#_199","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/#_200","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/#_201","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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 - \u5343\u7c73 / \u5c0f\u65f6 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/#_202","text":"set _ autopilot ( self , enabled = True , port = 8000 ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_203","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/#_204","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/#_205","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/#_206","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/#_207","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/#_208","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/#_209","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/#_210","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/#_211","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/#_212","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/#_213","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/#_214","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/#_215","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/#_216","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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/#_217","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 \u884c\u4eba \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/#_218","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 \u7236\u7ea7 \u9aa8\u9abc \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/#_219","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/#_220","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkeraicontroller","text":"\u4ece carla . Actor \u7ee7\u627f \u5bf9 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9\u662f \u5b83\u4eec \u5c06 \u63a7\u5236 \u7684 \u884c\u4eba \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 \u4eff\u771f \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/#_221","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/#_222","text":"set _ max _ speed ( self , speed = 1.4 ) \u8bbe\u7f6e \u884c\u4eba \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/#_223","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkerbonecontrolin","text":"\u8be5\u7c7b \u4e3a \u884c\u4eba \u63d0\u4f9b \u9aa8\u9abc \u7279\u5b9a \u7684 \u64cd\u4f5c \u3002 \u4e3a\u4e86 \u6e05\u6670 \u8d77 \u89c1 \uff0c \u884c\u4eba \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/#_224","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/#_225","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/#_226","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u76f8\u5bf9 \uff09 \u4e2d \u7684 \u53d8\u6362 \u3002","title":"carla . WalkerBoneControlOut"},{"location":"python_api/#_227","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/#_228","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_229","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/#_230","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 \u884c\u4eba \u5c06 \u6267\u884c \u8df3\u8dc3 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_231","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/#_232","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 \u8def\u5f84 \u70b9 \u88ab \u63cf\u8ff0 \u4e3a \u4e09\u7ef4 \u6709 \u5411 \u70b9 \u3002 \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u53ef\u4ee5 \u5b9a\u4f4d \u9053\u8def \u4e2d \u7684 \u8def\u5f84 \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 \u8def\u5f84 \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/#_233","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 \u8def\u5f84 \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 \u8def\u5f84 \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/#_234","text":"next ( self , distance ) \u5f53\u524d \u70b9 \u67d0\u4e2a \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u7684 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) - \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) - \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint )","title":"\u65b9\u6cd5"},{"location":"python_api/#_235","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 \u8def\u5f84 \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u9053\u8def \u4e0a \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u8def\u5f84 \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 \u8def\u5f84 \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/#_236","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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/#_237","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/#_238","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/#_239","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/#_240","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/#_241","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/#_242","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/#_243","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/#_244","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 \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 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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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/#_245","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/#_246","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 \u4eff\u771f \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/#_247","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/#_248","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/#_249","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/#_250","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 \u8282\u62cd \u4fe1\u53f7 \u4e2d \u83b7\u53d6 \u4e00\u4e2a \u65b0 \u7684 \u5feb\u7167 \u3002","title":"carla . WorldSnapshot"},{"location":"python_api/#_251","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/#_252","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/#_253","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/#_254","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/#_255","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/#_256","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/#_257","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/#_258","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/#_259","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/#_260","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/#_261","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/#_262","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/#_263","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/#_264","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/#_265","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/#_266","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/#_267","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/#_268","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/#_269","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":"\u5728 carla . Vehicle \u4e2d apply _ control ( ) \u547d\u4ee4 \u8fdb\u884c \u9002\u5e94 \uff0c \u5b9e\u73b0 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u63a7\u5236 \u3002","title":"command . ApplyVehicleControl"},{"location":"python_api/#_270","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/#_271","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/#_272","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/#_273","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/#_274","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/#_275","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/#_276","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/#_277","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 ( ) \u547d\u4ee4 \u7684 \u6539\u7f16 \u7248 \uff0c \u5c06 \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5df2\u7ecf \u88ab \u9500\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 \u9500\u6bc1 \u3002","title":"command . DestroyActor"},{"location":"python_api/#_278","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_279","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/#_280","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/#_281","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/#_282","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/#_283","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/#_284","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/#_285","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/#_286","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/#_287","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/#_288","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/#_289","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/#_290","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/#_291","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/#_292","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/#_293","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 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u5728 Linux \u4e0a\u7528 make \u6784\u5efa \uff0c \u5728 Windows \u4e0a\u7528 cmake \u6784\u5efa \u3002 CARLA _ ROOT / Examples / CppClient / main . cpp \u4e2d \u7684 \u5b58\u50a8 \u5e93\u4e2d \u63d0\u4f9b \u4e86 \u4e00\u4e2a C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u3002 \u8fd9\u4e2a \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u5c06 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76 \u4f7f\u7528 API \u6267\u884c \u4e00\u4e9b \u7b80\u5355 \u7684 \u4efb\u52a1 \u3002 \u8981 \u6784\u5efa \u793a\u4f8b C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8bf7 \u5728 \u5b58\u50a8 \u5e93 \u7684 CARLA _ ROOT / Examples / CppClient \u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make \uff0c \u7136\u540e \u6267\u884c . / bin / cpp _ client \u6765 \u8fd0\u884c \u793a\u4f8b \u3002 \u8be5 \u793a\u4f8b \u5c06 \u4ece \u53ef\u7528 \u5730\u56fe \u4e2d \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u5730\u56fe \uff0c \u7136\u540e \u52a0\u8f7d \u5b83 \u3002 \u7136\u540e \uff0c \u5b83 \u5c06 \u751f\u6210 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5e76 \u5bf9 \u8be5\u8f66 \u5e94\u7528 \u63a7\u5236 \u3002 \u6709\u5173 \u6b64 \u793a\u4f8b \u811a\u672c \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u3001 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 C++ \u6587\u6863 \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 \u3002 \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 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \u5728 vs2019 \u4e2d \u70b9\u51fb \u83dc\u5355 \u6587\u4ef6 - > \u6253\u5f00 - > CMake \uff0c \u6253\u5f00 Examples \\ CppClient \\ CMakeLists . txt \uff1b \u70b9\u51fb \u7ba1\u7406 \u914d\u7f6e \uff0c \u6dfb\u52a0 \u65b0 \u7684 \u914d\u7f6e x64 - release \uff1b \uff08 \u6ce8\u610f \uff1a x64 - Debug \u8fd8\u6709 \u95ee\u9898 \uff09 \uff1b \u542f\u52a8 Carla \u670d\u52a1 \u670d\u52a1\u7aef \u540e \uff0c \u5728 vs2019 \u4e2d \u70b9\u51fb \u8c03\u8bd5 - > \u5f00\u59cb \u6267\u884c \u3002 \u9605\u8bfb HUD : Heads - up Displays , \u5934\u663e \u3002 \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \uff08 UI \uff09 \u548c \u5934\u663e \uff08 HUD \uff09 \u662f \u6e38\u620f \u5411 \u73a9\u5bb6 \u63d0\u4f9b \u6e38\u620f \u4fe1\u606f \u4ee5\u53ca \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \u5141\u8bb8 \u73a9\u5bb6 \u4e0e \u6e38\u620f \u4e92\u52a8 \u7684 \u65b9\u5f0f \u3002 HUD \u6307 \u7684 \u662f \u6e38\u620f \u671f\u95f4 \u5728 \u5c4f\u5e55 \u4e0a \u8986\u76d6 \u7684 \u72b6\u6001 \u548c \u4fe1\u606f \u3002 HUD \u7684 \u76ee\u7684 \u662f \u544a\u77e5 \u73a9\u5bb6 \u5f53\u524d \u6e38\u620f \u72b6\u6001 \uff0c \u5373 \u5206\u6570 \u3001 \u751f\u547d \u503c \u3001 \u6e38\u620f \u5269\u4f59 \u65f6\u95f4 \u5269\u4f59\u65f6\u95f4 \u7b49 \u3002 HUD \u901a\u5e38 \u662f \u4e0d\u53ef \u4e92\u52a8 \u7684 \uff0c \u610f\u5473 \u610f\u5473\u7740 \u73a9\u5bb6 \u4e0d\u80fd \u5355\u51fb HUD \u7684 \u5143\u7d20 \uff0c \u56e0\u6b64 \u5728 HUD \u548c \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \u96be\u4ee5 \u5206\u79bb \u7684 \u67d0\u4e9b \u7c7b\u578b \u6e38\u620f \u4e2d \uff0c \u8fd9\u4e9b \u5143\u7d20 \u4f1a \u663e\u793a \u4e3a \u7070\u8272 \u533a\u57df \u3002","title":"Ref cpp"},{"location":"ref_cpp/#c","text":"","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#c_1","text":"C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u5728 Linux \u4e0a\u7528 make \u6784\u5efa \uff0c \u5728 Windows \u4e0a\u7528 cmake \u6784\u5efa \u3002 CARLA _ ROOT / Examples / CppClient / main . cpp \u4e2d \u7684 \u5b58\u50a8 \u5e93\u4e2d \u63d0\u4f9b \u4e86 \u4e00\u4e2a C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u3002 \u8fd9\u4e2a \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u5c06 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76 \u4f7f\u7528 API \u6267\u884c \u4e00\u4e9b \u7b80\u5355 \u7684 \u4efb\u52a1 \u3002 \u8981 \u6784\u5efa \u793a\u4f8b C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8bf7 \u5728 \u5b58\u50a8 \u5e93 \u7684 CARLA _ ROOT / Examples / CppClient \u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make \uff0c \u7136\u540e \u6267\u884c . / bin / cpp _ client \u6765 \u8fd0\u884c \u793a\u4f8b \u3002 \u8be5 \u793a\u4f8b \u5c06 \u4ece \u53ef\u7528 \u5730\u56fe \u4e2d \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u5730\u56fe \uff0c \u7136\u540e \u52a0\u8f7d \u5b83 \u3002 \u7136\u540e \uff0c \u5b83 \u5c06 \u751f\u6210 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5e76 \u5bf9 \u8be5\u8f66 \u5e94\u7528 \u63a7\u5236 \u3002 \u6709\u5173 \u6b64 \u793a\u4f8b \u811a\u672c \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u3001 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002","title":"C++ \u5ba2\u6237\u7aef"},{"location":"ref_cpp/#c_2","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 \u3002 \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002","title":"C++ \u6587\u6863"},{"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_cpp/#c_3","text":"\u5728 vs2019 \u4e2d \u70b9\u51fb \u83dc\u5355 \u6587\u4ef6 - > \u6253\u5f00 - > CMake \uff0c \u6253\u5f00 Examples \\ CppClient \\ CMakeLists . txt \uff1b \u70b9\u51fb \u7ba1\u7406 \u914d\u7f6e \uff0c \u6dfb\u52a0 \u65b0 \u7684 \u914d\u7f6e x64 - release \uff1b \uff08 \u6ce8\u610f \uff1a x64 - Debug \u8fd8\u6709 \u95ee\u9898 \uff09 \uff1b \u542f\u52a8 Carla \u670d\u52a1 \u670d\u52a1\u7aef \u540e \uff0c \u5728 vs2019 \u4e2d \u70b9\u51fb \u8c03\u8bd5 - > \u5f00\u59cb \u6267\u884c \u3002","title":"C++ \u5ba2\u6237\u7aef \u8fd0\u884c"},{"location":"ref_cpp/#_1","text":"HUD : Heads - up Displays , \u5934\u663e \u3002 \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \uff08 UI \uff09 \u548c \u5934\u663e \uff08 HUD \uff09 \u662f \u6e38\u620f \u5411 \u73a9\u5bb6 \u63d0\u4f9b \u6e38\u620f \u4fe1\u606f \u4ee5\u53ca \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \u5141\u8bb8 \u73a9\u5bb6 \u4e0e \u6e38\u620f \u4e92\u52a8 \u7684 \u65b9\u5f0f \u3002 HUD \u6307 \u7684 \u662f \u6e38\u620f \u671f\u95f4 \u5728 \u5c4f\u5e55 \u4e0a \u8986\u76d6 \u7684 \u72b6\u6001 \u548c \u4fe1\u606f \u3002 HUD \u7684 \u76ee\u7684 \u662f \u544a\u77e5 \u73a9\u5bb6 \u5f53\u524d \u6e38\u620f \u72b6\u6001 \uff0c \u5373 \u5206\u6570 \u3001 \u751f\u547d \u503c \u3001 \u6e38\u620f \u5269\u4f59 \u65f6\u95f4 \u5269\u4f59\u65f6\u95f4 \u7b49 \u3002 HUD \u901a\u5e38 \u662f \u4e0d\u53ef \u4e92\u52a8 \u7684 \uff0c \u610f\u5473 \u610f\u5473\u7740 \u73a9\u5bb6 \u4e0d\u80fd \u5355\u51fb HUD \u7684 \u5143\u7d20 \uff0c \u56e0\u6b64 \u5728 HUD \u548c \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \u96be\u4ee5 \u5206\u79bb \u7684 \u67d0\u4e9b \u7c7b\u578b \u6e38\u620f \u4e2d \uff0c \u8fd9\u4e9b \u5143\u7d20 \u4f1a \u663e\u793a \u4e3a \u7070\u8272 \u533a\u57df \u3002","title":"\u9605\u8bfb"},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u9500\u6bc1 \u3002","title":"Ref recorder binary file format"},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u9500\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 \u538b\u7ebf \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 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u611f\u77e5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd 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 \u8282\u62cd \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 \u5317\u662f 0 \u5f27\u5ea6 \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 \u6ce8\u610f \u5bf9\u4e8e \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \uff0c \u5317\u4e3a 0 \u5f27\u5ea6 \u3002 \u4e1c\u4e3a pi / 2 \u5f27\u5ea6 \uff0c \u5357\u4e3a pi \u5f27\u5ea6 \uff0c \u897f\u4e3a 3 pi / 2 \u5f27\u5ea6 \u3002 \u5728 Carla \u7684 \u5168\u5c40 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \uff0c \u5317\u4e3a Y \u8f74 \u51cf\u5c0f \u7684 \u65b9\u5411 \u3002 \u4e1c\u4e3a X \u8f74 \u589e\u52a0 \u7684 \u65b9\u5411 \u3002 \u8f6c\u6362 \u4e3a \u5ea6\u6570 \u7684 \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u503c \u7b49\u4e8e 90 - \u504f\u822a \u3002 \u538b\u7ebf \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 \u8282\u62cd \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 \u8282\u62cd \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 # \u4e3a\u4e86 \u83b7\u5f97 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 \u8282\u62cd \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 \u8282\u62cd \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 # rss _ sensor . py \u4ee3\u7801 \u7247\u6bb5 # 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 # \u66f4\u65b0 \u5f53\u524d \u8def\u7ebf 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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 # rss _ sensor . py \u4ee3\u7801 \u7247\u6bb5 # \u6ce8\u518c \u8be5 \u51fd\u6570 \u4e3a 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 : # \u4e3a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u5236 actor _ constellation _ result ... else : # \u9ed8\u8ba4 ... 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 \u8282\u62cd \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \uff08 \u6ce8\u610f \uff1a \u4ece \u7248\u672c 0.9 . 13 \u5230 0.9 . 14 \u6570\u5b57 \u6240 \u5bf9\u5e94 \u7684 \u6807\u7b7e \u53d1\u751f \u4e86 \u5f88\u5927 \u53d8\u5316 \uff09 \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 Roads ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u6bd4\u5982 \uff0c \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 2 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 3 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 \u3002 4 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 5 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 6 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 7 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 8 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 ... 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 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 11 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 12 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 13 Rider ( 0 , 0 , 142 ) \u4eba\u7c7b \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u3002 \u4f8b\u5982 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u8f6e\u6ed1 \u3001 \u8f6e\u6905 \u7b49 \u3002 14 Car ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u5927\u84ec \u8d27\u8f66 15 Truck ( 0 , 0 , 70 ) \u5361\u8f66 16 Bus ( 0 , 60 , 100 ) \u516c\u4ea4 \u516c\u4ea4\u8f66 17 Truck ( 0 , 80 , 100 ) \u706b\u8f66 18 Motorcycle ( 0 , 0 , 230 ) \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 19 Bicycle ( 119 , 11 , 32 ) \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 20 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 21 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 22 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 23 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 24 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 25 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 26 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 27 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 28 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \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 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . instance _ segmentation \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u4e00\u4e2a carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u76f8\u673a \u6839\u636e \u7c7b\u522b \u548c \u5b9e\u4f8b ID \u5bf9 \u89c6\u91ce \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u8fdb\u884c \u5206\u7c7b \u3002 \u5f53 \u6a21\u62df \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u88ab \u521b\u5efa \u4e3a \u4e00\u4e2a \u6807\u7b7e \u3002 \u56e0\u6b64 \uff0c \u5f53 \u751f\u6210 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6839\u636e \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u7f51\u683c \u88ab \u6807\u8bb0 \u4e3a \u884c\u4eba Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u4e00\u5f20 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u4e86 \u6807\u7b7e \u4fe1\u606f \u7684 \u56fe\u50cf \uff1a \u7ea2\u8272 \u503c\u4e3a x \u7684 \u50cf\u7d20 \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e x \u7684 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u7684 \u7eff\u8272 \u548c \u84dd\u8272 \u503c \u5b9a\u4e49 \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 \u4f8b\u5982 \uff0c 8 \u4f4d RGB \u503c\u4e3a [ 10 , 20 , 55 ] \u7684 \u50cf\u7d20 \u662f \u4e00\u8f86 \u5177\u6709 \u552f\u4e00 \u5b9e\u4f8b ID 20 - 55 \u7684 \u8f66\u8f86 \uff08 \u8bed\u4e49 \u6807\u7b7e \u4e3a 10 \uff09 \u3002 \u57fa\u672c \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \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 \u6a21\u62df \u79d2\u6570 \uff08 \u8282\u62cd \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \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 \u6d4b\u91cf \u53d1\u751f \u65f6 \u7684 \u5e27 \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 \u6570\u7ec4 \u3002 timestamp double \u81ea \u60c5\u8282 \u5f00\u59cb \u4ee5\u6765 \u7684 \u6d4b\u91cf \u6a21\u62df \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \uff08 Dynamic Vision Sensor , DVS \uff09 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u8282\u62cd \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 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u8054 \u4e07\u7269 ( Vehicle - to - everything , V2X ) \u901a\u4fe1 \u662f \u672a\u6765 \u534f\u4f5c \u667a\u80fd \u4ea4\u901a \u7cfb\u7edf \u4ea4\u901a\u7cfb\u7edf \u5e94\u7528 \u7684 \u4e00\u4e2a \u91cd\u8981 \u65b9\u9762 \u3002 \u5728 \u5b9e\u9645 \u8f66\u8f86 \u4e2d \uff0c \u8fd9 \u9700\u8981 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0a \u90fd \u6709 \u4e00\u4e2a \u4e13\u7528 \u7684 \u8f66\u8f7d \u5355\u5143 ( onboard unit , OBU ) \uff0c \u80fd\u591f \u901a\u8fc7 \u65e0\u7ebf \u4fe1\u9053 \u53d1\u9001 \u548c \u63a5\u6536 \u4fe1\u606f \u3002 \u6839\u636e \u5730\u533a \uff08 \u6b27\u6d32 \u3001 \u4e2d\u56fd \u3001 \u7f8e\u56fd \uff09 \uff0c \u4f7f\u7528 \u4e0d\u540c \u7684 \u7269\u7406 \u6280\u672f \u3001 \u534f\u8bae \u548c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6d88\u606f \u683c\u5f0f \u3002 CARLA \u76ee\u524d \u652f\u6301 \u6a21\u62df \u7b80\u5355 \u7684 \u5e7f\u64ad \u65e0\u7ebf \u4fe1\u9053 \u548c \u4e24\u6761 \u5e94\u7528 \u6d88\u606f \u3002 \u5c1a \u4e0d \u652f\u6301 \u7f51\u7edc \u8bbf\u95ee \u548c \u8f6c\u53d1 \u534f\u8bae \u3002 \u4e24\u6761 \u5b9e\u73b0 \u7684 \u6d88\u606f \u5206\u522b \u662f \u7b26\u5408 \u6b27\u6d32 \u6807\u51c6 ETSI \u7684 \u534f\u4f5c \u611f\u77e5 \u6d88\u606f \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u7c7b\u578b \uff0c \u53ef \u7528\u4e8e \u4f20\u8f93 \u4efb\u610f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6570\u636e \uff08 \u4f8b\u5982 JSON \uff09 \u3002 V2X \u901a\u4fe1 \u6709 \u4e24\u79cd \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef\u4ee5 \u5355\u72ec \u4f7f\u7528 \uff0c \u6bcf\u79cd \u5e94\u7528 \u6d88\u606f \u7c7b\u578b \u5404 \u4e00\u4e2a \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u65e0\u7ebf \u901a\u9053 \u5305\u542b \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4ee5\u4e0b \u8ba1\u7b97 \uff1a ReceivedPower = OtherTransmitPower + combined _ antenna _ gain - loss IF ( ReceivedPower > = receiver _ sensitivity ) THEN message is received \u8981 \u6a21\u62df V2X \u901a\u4fe1 \uff0c \u81f3\u5c11 \u9700\u8981 \u751f\u6210 \u4e24\u4e2a \u76f8\u540c \u7c7b\u578b \u7684 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u81f3\u5c11 \u4e00\u5bf9 \u53d1\u9001 \u53d1\u9001\u5668 - \u63a5\u6536 \u63a5\u6536\u5668 \uff09 \u3002 \u7531\u4e8e \u63a5\u6536 \u529f\u7387 \u662f \u5728 \u63a5\u6536 \u63a5\u6536\u5668 \u7aef V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0a \u8ba1\u7b97 \u7684 \uff0c \u56e0\u6b64 \u53ea\u6709 \u63a5\u6536 \u63a5\u6536\u5668 \u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0a \u6307\u5b9a \u7684 \u5929\u7ebf \u589e\u76ca \u624d \u4f1a \u7eb3\u5165 \u6b64 \u8ba1\u7b97 \u4e2d \u3002 \u53ef\u4ee5 \u914d\u7f6e \u4f20\u8f93 \u529f\u7387 \u548c \u63a5\u6536 \u63a5\u6536\u5668 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 \u84dd\u56fe \u5c5e\u6027 \uff09 \u3002 \u635f\u8017 \u8ba1\u7b97 \u53d6\u51b3 \u53d6\u51b3\u4e8e - \u53d1\u9001 \u65b9 \u548c \u63a5\u6536 \u65b9 \u4e4b\u95f4 \u7684 \u53ef\u89c1 \u6027 \u6761\u4ef6 \uff1a \u89c6\u7ebf \uff08 \u65e0 \u969c\u788d \u969c\u788d\u7269 \uff09 \u3001 \u88ab \u5efa\u7b51 \u5efa\u7b51\u7269 \u906e\u6321 \u7684 \u975e \u89c6\u7ebf \u6216 \u88ab \u8f66\u8f86 \u906e\u6321 \u7684 \u975e \u89c6\u7ebf \uff0c \u4ee5\u53ca - \u573a\u666f \uff1a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u4e61\u6751 \u6216 \u57ce\u5e02 \u73af\u5883 \u867d\u7136 \u5728 CARLA \u4e2d \u6a21\u62df \u4e86 \u53ef\u89c1 \u6027 \uff0c \u4f46 \u7528\u6237 \u53ef\u4ee5 \u914d\u7f6e \u573a\u666f \uff08 \u53c2\u89c1 \u84dd\u56fe \u5c5e\u6027 \uff09 \uff0c \u4ee5\u53ca \u65e0\u7ebf \u4fe1\u9053 \u7684 \u5176\u4ed6 \u51e0\u4e2a \u5c5e\u6027 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u5b50 \uff09 \u7c7b\u578b \u534f\u540c \u611f\u77e5 \u6d88\u606f \u84dd\u56fe \uff1a sensor . other . v2x \u8f93\u51fa \uff1a carla . CAMData , \u6839\u636e ETSI CAM ( ooperative Awareness Message \uff0c \u534f\u540c \u8b66\u793a \u6d88\u606f ) \u6807\u51c6 \u89e6\u53d1 \uff0c \u9664\u975e \u53e6\u6709 \u914d\u7f6e \u6839\u636e ETSI \u6807\u51c6 \u7684 \u89e6\u53d1 \u6761\u4ef6 \uff1a - \u822a\u5411 \u89d2 \u53d8\u5316 > $ 4 $ \u00b0 - \u4f4d\u7f6e \u5dee > $ 4 $ m - \u901f\u5ea6 \u53d8\u5316 > $ 5 $ m / s - \u7ecf\u8fc7 \u65f6\u95f4 > CAM \u751f\u6210 \u65f6\u95f4 \uff08 \u53ef \u914d\u7f6e \uff09 - \u4f4e\u9891 \u5bb9\u5668 \u7ecf\u8fc7 \u65f6\u95f4 $ > 500 $ ms \u5bf9\u4e8e CAM V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u9002\u7528 \u5176\u4ed6 \u84dd\u56fe \u5c5e\u6027 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63cf\u8ff0 \u6d88\u606f \u751f\u6210 gen _ cam _ min float $ 0.1 $ \u4e24\u4e2a \u8fde\u7eed CAM \u4e4b\u95f4 \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u95f4\u9694 \uff08 \u79d2 \uff09 gen _ cam _ max float $ 1.0 $ \u4e24\u4e2a \u8fde\u7eed CAM \u4e4b\u95f4 \u7684 \u6700\u5927 \u65f6\u95f4 \u95f4\u9694 \uff08 \u79d2 \uff09 fixed _ rate bool false [ true ] \u5728 \u6bcf\u4e2a Carla \u8282\u62cd \u4e2d \u751f\u6210 \u4e00\u4e2a CAM \uff08 \u4ec5 \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \uff0c \u4f1a \u5bfc\u81f4 \u901f\u5ea6 \u53d8\u6162 \uff09 \u6570\u636e \u751f\u6210 noise _ vel _ stddev _ x float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u901f\u5ea6 \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 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 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \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 _ yawrate _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u504f\u822a \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ yawrate _ stddev float 0.0 \u504f\u822a \u901f\u5ea6 \u89d2\u901f\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ alt _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u6d77\u62d4 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \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 \u6807\u51c6\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u7ecf\u5ea6 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u7ecf\u5ea6 \u7684 \u6807\u51c6 \u6807\u51c6\u5dee \u53c2\u6570 \u3002 noise _ head _ bias float 0.0 \u822a\u5411 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ head _ stddev float 0.0 \u822a\u5411 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u84dd\u56fe \uff1a sensor . other . v2x _ custom \u8f93\u51fa \uff1a carla . CustomV2XData \uff0c \u5728 \u8c03\u7528 send ( ) \u540e \u89e6\u53d1 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u65b9\u6cd5 send ( self , callback ) \u7528\u6237 \u6bcf\u6b21 \u53d1\u9001 \u6d88\u606f \u65f6 \u5fc5\u987b \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u6765 \u5904\u7406 \u3002 \u53c2\u6570 \uff1a data ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u5e26\u6709 \u4e00\u4e2a \u5305\u542b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u7684 \u53c2\u6570 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u56e0\u4e3a \u5b83 \u9664\u4e86 \u4fa6\u542c \u51fd\u6570 \u4e4b\u5916 \u8fd8 \u5177\u6709 \u53d1\u9001 \u51fd\u6570 \uff0c \u9700\u8981 \u5148 \u8c03\u7528 \u8be5 \u51fd\u6570 \uff0c \u7136\u540e \u5176\u4ed6 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u624d\u80fd \u63a5\u6536 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u53ea\u6709 \u5728 \u8c03\u7528 \u53d1\u9001 \u65f6\u624d \u4f1a \u89e6\u53d1 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u7684 \u4f20\u8f93 \u3002 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u53d1\u9001 \u51fd\u6570 \u7684 \u6bcf\u6761 \u6d88\u606f \u4ec5 \u5411 \u5f53\u524d \u751f\u6210 \u7684 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u8f93 \u4e00\u6b21 \u3002 \u793a\u4f8b \uff1a bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . v2x _ custom ' ) sensor = world . spawn _ actor ( bp , carla . Transform ( ) , attach _ to = parent ) sensor . send ( \" Hello CARLA \" ) V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63cf\u8ff0 transmit _ power float $ 21.5 $ \u53d1\u9001 \u65b9 \u4f20\u8f93 \u529f\u7387 \uff08 \u5355\u4f4d \uff1a dBm \uff09 receiver _ sensitivity float $ - 99 $ \u63a5\u6536 \u63a5\u6536\u5668 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \uff08 \u5355\u4f4d \uff1a dBm \uff09 frequency _ ghz float $ 5.9 $ \u4f20\u8f93 \u9891\u7387 \uff08 GHz \uff09 \u3002 5.9 GHz \u662f \u591a\u4e2a \u7269\u7406 \u4fe1\u9053 \u7684 \u6807\u51c6 \u3002 noise _ seed int $ 0 $ \u566a\u58f0 \u521d\u59cb \u521d\u59cb\u5316 \u7684 \u968f\u673a \u53c2\u6570 filter _ distance float $ 500 $ \u6700\u5927 \u4f20\u8f93 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \uff0c \u4e0a\u9762 \u7684 \u8def\u5f84 \u635f\u8017 \u8ba1\u7b97 \u56e0 \u6a21\u62df \u901f\u5ea6 \u800c \u7565\u8fc7 \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u53c2\u6570 combined _ antenna _ gain float $ 10.0 $ \u53d1\u5c04 \u53d1\u5c04\u673a \u548c \u63a5\u6536 \u63a5\u6536\u673a \u5929\u7ebf \u7684 \u7ec4\u5408 \u589e\u76ca \uff08 \u4ee5 dBi \u4e3a \u5355\u4f4d \uff09 \uff0c \u8f90\u5c04 \u6548\u7387 \u8f90\u5c04\u6548\u7387 \u548c \u65b9\u5411 \u5411\u6027 \u65b9\u5411\u6027 \u7684 \u53c2\u6570 d _ ref float $ 1.0 $ \u5bf9\u6570 \u8ddd\u79bb \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u7684 \u53c2\u8003 \u8ddd\u79bb \uff08 \u5355\u4f4d \uff1a \u7c73 \uff09 path _ loss _ exponent float 2.7 \u7531\u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u906e\u6321 \u5bfc\u81f4 \u7684 \u975e \u89c6\u8ddd \u635f\u8017 \u53c2\u6570 scenario string urban \u9009\u9879 \uff1a [ urban , rustic , highly available ] \uff0c \u5b9a\u4e49 \u8870\u843d \u566a\u58f0 \u53c2\u6570 path _ loss _ model string geometric \u4f7f\u7528 \u7684 \u901a\u7528 \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u3002 \u9009\u9879 \uff1a [ geometric , winor ] use _ etsi _ fading bool true \u4f7f\u7528 ETSI \u51fa\u7248 \u51fa\u7248\u7269 \u4e2d \u63d0\u5230 \u7684 \u8870\u843d \u53c2\u6570 \uff08 true \uff09 \uff0c \u6216 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8870\u843d \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee custom _ fading _ stddev float 0.0 \u8870\u51cf \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \uff0c \u4ec5\u5f53 use _ etsi _ fading \u8bbe\u7f6e \u4e3a false \u65f6\u624d \u4f7f\u7528","title":"Ref sensors"},{"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 \u538b\u7ebf \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 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u611f\u77e5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd 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 \u8282\u62cd \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 \u5317\u662f 0 \u5f27\u5ea6 \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 \u6ce8\u610f \u5bf9\u4e8e \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \uff0c \u5317\u4e3a 0 \u5f27\u5ea6 \u3002 \u4e1c\u4e3a pi / 2 \u5f27\u5ea6 \uff0c \u5357\u4e3a pi \u5f27\u5ea6 \uff0c \u897f\u4e3a 3 pi / 2 \u5f27\u5ea6 \u3002 \u5728 Carla \u7684 \u5168\u5c40 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \uff0c \u5317\u4e3a Y \u8f74 \u51cf\u5c0f \u7684 \u65b9\u5411 \u3002 \u4e1c\u4e3a X \u8f74 \u589e\u52a0 \u7684 \u65b9\u5411 \u3002 \u8f6c\u6362 \u4e3a \u5ea6\u6570 \u7684 \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u503c \u7b49\u4e8e 90 - \u504f\u822a \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":"\u538b\u7ebf \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 \u8282\u62cd \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 \u8282\u62cd \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 # \u4e3a\u4e86 \u83b7\u5f97 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 \u8282\u62cd \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 \u8282\u62cd \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 # rss _ sensor . py \u4ee3\u7801 \u7247\u6bb5 # 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 # \u66f4\u65b0 \u5f53\u524d \u8def\u7ebf 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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 # rss _ sensor . py \u4ee3\u7801 \u7247\u6bb5 # \u6ce8\u518c \u8be5 \u51fd\u6570 \u4e3a 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 : # \u4e3a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u5236 actor _ constellation _ result ... else : # \u9ed8\u8ba4 ... 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 \u8282\u62cd \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \uff08 \u6ce8\u610f \uff1a \u4ece \u7248\u672c 0.9 . 13 \u5230 0.9 . 14 \u6570\u5b57 \u6240 \u5bf9\u5e94 \u7684 \u6807\u7b7e \u53d1\u751f \u4e86 \u5f88\u5927 \u53d8\u5316 \uff09 \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 Roads ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u6bd4\u5982 \uff0c \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 2 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 3 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 \u3002 4 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 5 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 6 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 7 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 8 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 ... 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 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 11 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 12 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 13 Rider ( 0 , 0 , 142 ) \u4eba\u7c7b \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u3002 \u4f8b\u5982 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u8f6e\u6ed1 \u3001 \u8f6e\u6905 \u7b49 \u3002 14 Car ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u5927\u84ec \u8d27\u8f66 15 Truck ( 0 , 0 , 70 ) \u5361\u8f66 16 Bus ( 0 , 60 , 100 ) \u516c\u4ea4 \u516c\u4ea4\u8f66 17 Truck ( 0 , 80 , 100 ) \u706b\u8f66 18 Motorcycle ( 0 , 0 , 230 ) \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 19 Bicycle ( 119 , 11 , 32 ) \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 20 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 21 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 22 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 23 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 24 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 25 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 26 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 27 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 28 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \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/#_36","text":"\u84dd\u56fe \uff1a sensor . camera . instance _ segmentation \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u4e00\u4e2a carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u76f8\u673a \u6839\u636e \u7c7b\u522b \u548c \u5b9e\u4f8b ID \u5bf9 \u89c6\u91ce \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u8fdb\u884c \u5206\u7c7b \u3002 \u5f53 \u6a21\u62df \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u88ab \u521b\u5efa \u4e3a \u4e00\u4e2a \u6807\u7b7e \u3002 \u56e0\u6b64 \uff0c \u5f53 \u751f\u6210 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6839\u636e \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u7f51\u683c \u88ab \u6807\u8bb0 \u4e3a \u884c\u4eba Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u4e00\u5f20 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u4e86 \u6807\u7b7e \u4fe1\u606f \u7684 \u56fe\u50cf \uff1a \u7ea2\u8272 \u503c\u4e3a x \u7684 \u50cf\u7d20 \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e x \u7684 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u7684 \u7eff\u8272 \u548c \u84dd\u8272 \u503c \u5b9a\u4e49 \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 \u4f8b\u5982 \uff0c 8 \u4f4d RGB \u503c\u4e3a [ 10 , 20 , 55 ] \u7684 \u50cf\u7d20 \u662f \u4e00\u8f86 \u5177\u6709 \u552f\u4e00 \u5b9e\u4f8b ID 20 - 55 \u7684 \u8f66\u8f86 \uff08 \u8bed\u4e49 \u6807\u7b7e \u4e3a 10 \uff09 \u3002","title":"\u5b9e\u4f8b \u5206\u5272 \u76f8\u673a "},{"location":"ref_sensors/#_37","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \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 \u6a21\u62df \u79d2\u6570 \uff08 \u8282\u62cd \uff09 \u3002","title":"\u57fa\u672c \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_38","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \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/#_39","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 \u6d4b\u91cf \u53d1\u751f \u65f6 \u7684 \u5e27 \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 \u6570\u7ec4 \u3002 timestamp double \u81ea \u60c5\u8282 \u5f00\u59cb \u4ee5\u6765 \u7684 \u6d4b\u91cf \u6a21\u62df \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/#_40","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 \uff08 Dynamic Vision Sensor , DVS \uff09 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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":"\u52a8\u6001 \u89c6\u89c9 \u4f20\u611f\u5668 \u76f8\u673a "},{"location":"ref_sensors/#_41","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":"\u52a8\u6001 \u89c6\u89c9 \u4f20\u611f\u5668 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_42","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/#_43","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 \u8282\u62cd \uff09 \u3002","title":"\u5149\u6d41 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_44","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/#_45","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":"ref_sensors/#v2x","text":"\u8f66\u8054 \u4e07\u7269 ( Vehicle - to - everything , V2X ) \u901a\u4fe1 \u662f \u672a\u6765 \u534f\u4f5c \u667a\u80fd \u4ea4\u901a \u7cfb\u7edf \u4ea4\u901a\u7cfb\u7edf \u5e94\u7528 \u7684 \u4e00\u4e2a \u91cd\u8981 \u65b9\u9762 \u3002 \u5728 \u5b9e\u9645 \u8f66\u8f86 \u4e2d \uff0c \u8fd9 \u9700\u8981 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0a \u90fd \u6709 \u4e00\u4e2a \u4e13\u7528 \u7684 \u8f66\u8f7d \u5355\u5143 ( onboard unit , OBU ) \uff0c \u80fd\u591f \u901a\u8fc7 \u65e0\u7ebf \u4fe1\u9053 \u53d1\u9001 \u548c \u63a5\u6536 \u4fe1\u606f \u3002 \u6839\u636e \u5730\u533a \uff08 \u6b27\u6d32 \u3001 \u4e2d\u56fd \u3001 \u7f8e\u56fd \uff09 \uff0c \u4f7f\u7528 \u4e0d\u540c \u7684 \u7269\u7406 \u6280\u672f \u3001 \u534f\u8bae \u548c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6d88\u606f \u683c\u5f0f \u3002 CARLA \u76ee\u524d \u652f\u6301 \u6a21\u62df \u7b80\u5355 \u7684 \u5e7f\u64ad \u65e0\u7ebf \u4fe1\u9053 \u548c \u4e24\u6761 \u5e94\u7528 \u6d88\u606f \u3002 \u5c1a \u4e0d \u652f\u6301 \u7f51\u7edc \u8bbf\u95ee \u548c \u8f6c\u53d1 \u534f\u8bae \u3002 \u4e24\u6761 \u5b9e\u73b0 \u7684 \u6d88\u606f \u5206\u522b \u662f \u7b26\u5408 \u6b27\u6d32 \u6807\u51c6 ETSI \u7684 \u534f\u4f5c \u611f\u77e5 \u6d88\u606f \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u7c7b\u578b \uff0c \u53ef \u7528\u4e8e \u4f20\u8f93 \u4efb\u610f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6570\u636e \uff08 \u4f8b\u5982 JSON \uff09 \u3002 V2X \u901a\u4fe1 \u6709 \u4e24\u79cd \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef\u4ee5 \u5355\u72ec \u4f7f\u7528 \uff0c \u6bcf\u79cd \u5e94\u7528 \u6d88\u606f \u7c7b\u578b \u5404 \u4e00\u4e2a \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u65e0\u7ebf \u901a\u9053 \u5305\u542b \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4ee5\u4e0b \u8ba1\u7b97 \uff1a ReceivedPower = OtherTransmitPower + combined _ antenna _ gain - loss IF ( ReceivedPower > = receiver _ sensitivity ) THEN message is received \u8981 \u6a21\u62df V2X \u901a\u4fe1 \uff0c \u81f3\u5c11 \u9700\u8981 \u751f\u6210 \u4e24\u4e2a \u76f8\u540c \u7c7b\u578b \u7684 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u81f3\u5c11 \u4e00\u5bf9 \u53d1\u9001 \u53d1\u9001\u5668 - \u63a5\u6536 \u63a5\u6536\u5668 \uff09 \u3002 \u7531\u4e8e \u63a5\u6536 \u529f\u7387 \u662f \u5728 \u63a5\u6536 \u63a5\u6536\u5668 \u7aef V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0a \u8ba1\u7b97 \u7684 \uff0c \u56e0\u6b64 \u53ea\u6709 \u63a5\u6536 \u63a5\u6536\u5668 \u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0a \u6307\u5b9a \u7684 \u5929\u7ebf \u589e\u76ca \u624d \u4f1a \u7eb3\u5165 \u6b64 \u8ba1\u7b97 \u4e2d \u3002 \u53ef\u4ee5 \u914d\u7f6e \u4f20\u8f93 \u529f\u7387 \u548c \u63a5\u6536 \u63a5\u6536\u5668 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 \u84dd\u56fe \u5c5e\u6027 \uff09 \u3002 \u635f\u8017 \u8ba1\u7b97 \u53d6\u51b3 \u53d6\u51b3\u4e8e - \u53d1\u9001 \u65b9 \u548c \u63a5\u6536 \u65b9 \u4e4b\u95f4 \u7684 \u53ef\u89c1 \u6027 \u6761\u4ef6 \uff1a \u89c6\u7ebf \uff08 \u65e0 \u969c\u788d \u969c\u788d\u7269 \uff09 \u3001 \u88ab \u5efa\u7b51 \u5efa\u7b51\u7269 \u906e\u6321 \u7684 \u975e \u89c6\u7ebf \u6216 \u88ab \u8f66\u8f86 \u906e\u6321 \u7684 \u975e \u89c6\u7ebf \uff0c \u4ee5\u53ca - \u573a\u666f \uff1a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u4e61\u6751 \u6216 \u57ce\u5e02 \u73af\u5883 \u867d\u7136 \u5728 CARLA \u4e2d \u6a21\u62df \u4e86 \u53ef\u89c1 \u6027 \uff0c \u4f46 \u7528\u6237 \u53ef\u4ee5 \u914d\u7f6e \u573a\u666f \uff08 \u53c2\u89c1 \u84dd\u56fe \u5c5e\u6027 \uff09 \uff0c \u4ee5\u53ca \u65e0\u7ebf \u4fe1\u9053 \u7684 \u5176\u4ed6 \u51e0\u4e2a \u5c5e\u6027 \u3002","title":"V2X \u4f20\u611f\u5668 "},{"location":"ref_sensors/#_46","text":"","title":"\u4f20\u611f\u5668 \uff08 \u5b50 \uff09 \u7c7b\u578b"},{"location":"ref_sensors/#_47","text":"\u84dd\u56fe \uff1a sensor . other . v2x \u8f93\u51fa \uff1a carla . CAMData , \u6839\u636e ETSI CAM ( ooperative Awareness Message \uff0c \u534f\u540c \u8b66\u793a \u6d88\u606f ) \u6807\u51c6 \u89e6\u53d1 \uff0c \u9664\u975e \u53e6\u6709 \u914d\u7f6e \u6839\u636e ETSI \u6807\u51c6 \u7684 \u89e6\u53d1 \u6761\u4ef6 \uff1a - \u822a\u5411 \u89d2 \u53d8\u5316 > $ 4 $ \u00b0 - \u4f4d\u7f6e \u5dee > $ 4 $ m - \u901f\u5ea6 \u53d8\u5316 > $ 5 $ m / s - \u7ecf\u8fc7 \u65f6\u95f4 > CAM \u751f\u6210 \u65f6\u95f4 \uff08 \u53ef \u914d\u7f6e \uff09 - \u4f4e\u9891 \u5bb9\u5668 \u7ecf\u8fc7 \u65f6\u95f4 $ > 500 $ ms \u5bf9\u4e8e CAM V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u9002\u7528 \u5176\u4ed6 \u84dd\u56fe \u5c5e\u6027 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63cf\u8ff0 \u6d88\u606f \u751f\u6210 gen _ cam _ min float $ 0.1 $ \u4e24\u4e2a \u8fde\u7eed CAM \u4e4b\u95f4 \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u95f4\u9694 \uff08 \u79d2 \uff09 gen _ cam _ max float $ 1.0 $ \u4e24\u4e2a \u8fde\u7eed CAM \u4e4b\u95f4 \u7684 \u6700\u5927 \u65f6\u95f4 \u95f4\u9694 \uff08 \u79d2 \uff09 fixed _ rate bool false [ true ] \u5728 \u6bcf\u4e2a Carla \u8282\u62cd \u4e2d \u751f\u6210 \u4e00\u4e2a CAM \uff08 \u4ec5 \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \uff0c \u4f1a \u5bfc\u81f4 \u901f\u5ea6 \u53d8\u6162 \uff09 \u6570\u636e \u751f\u6210 noise _ vel _ stddev _ x float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u901f\u5ea6 \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 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 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \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 _ yawrate _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u504f\u822a \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ yawrate _ stddev float 0.0 \u504f\u822a \u901f\u5ea6 \u89d2\u901f\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ alt _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u6d77\u62d4 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \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 \u6807\u51c6\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u7ecf\u5ea6 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u7ecf\u5ea6 \u7684 \u6807\u51c6 \u6807\u51c6\u5dee \u53c2\u6570 \u3002 noise _ head _ bias float 0.0 \u822a\u5411 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ head _ stddev float 0.0 \u822a\u5411 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002","title":"\u534f\u540c \u611f\u77e5 \u6d88\u606f "},{"location":"ref_sensors/#v2x_1","text":"\u84dd\u56fe \uff1a sensor . other . v2x _ custom \u8f93\u51fa \uff1a carla . CustomV2XData \uff0c \u5728 \u8c03\u7528 send ( ) \u540e \u89e6\u53d1 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f","title":"\u81ea\u5b9a\u4e49 V2X \u6d88\u606f "},{"location":"ref_sensors/#_48","text":"send ( self , callback ) \u7528\u6237 \u6bcf\u6b21 \u53d1\u9001 \u6d88\u606f \u65f6 \u5fc5\u987b \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u6765 \u5904\u7406 \u3002 \u53c2\u6570 \uff1a data ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u5e26\u6709 \u4e00\u4e2a \u5305\u542b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u7684 \u53c2\u6570 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u56e0\u4e3a \u5b83 \u9664\u4e86 \u4fa6\u542c \u51fd\u6570 \u4e4b\u5916 \u8fd8 \u5177\u6709 \u53d1\u9001 \u51fd\u6570 \uff0c \u9700\u8981 \u5148 \u8c03\u7528 \u8be5 \u51fd\u6570 \uff0c \u7136\u540e \u5176\u4ed6 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u624d\u80fd \u63a5\u6536 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u53ea\u6709 \u5728 \u8c03\u7528 \u53d1\u9001 \u65f6\u624d \u4f1a \u89e6\u53d1 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u7684 \u4f20\u8f93 \u3002 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u53d1\u9001 \u51fd\u6570 \u7684 \u6bcf\u6761 \u6d88\u606f \u4ec5 \u5411 \u5f53\u524d \u751f\u6210 \u7684 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u8f93 \u4e00\u6b21 \u3002 \u793a\u4f8b \uff1a bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . v2x _ custom ' ) sensor = world . spawn _ actor ( bp , carla . Transform ( ) , attach _ to = parent ) sensor . send ( \" Hello CARLA \" )","title":"\u65b9\u6cd5"},{"location":"ref_sensors/#v2x_2","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63cf\u8ff0 transmit _ power float $ 21.5 $ \u53d1\u9001 \u65b9 \u4f20\u8f93 \u529f\u7387 \uff08 \u5355\u4f4d \uff1a dBm \uff09 receiver _ sensitivity float $ - 99 $ \u63a5\u6536 \u63a5\u6536\u5668 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \uff08 \u5355\u4f4d \uff1a dBm \uff09 frequency _ ghz float $ 5.9 $ \u4f20\u8f93 \u9891\u7387 \uff08 GHz \uff09 \u3002 5.9 GHz \u662f \u591a\u4e2a \u7269\u7406 \u4fe1\u9053 \u7684 \u6807\u51c6 \u3002 noise _ seed int $ 0 $ \u566a\u58f0 \u521d\u59cb \u521d\u59cb\u5316 \u7684 \u968f\u673a \u53c2\u6570 filter _ distance float $ 500 $ \u6700\u5927 \u4f20\u8f93 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \uff0c \u4e0a\u9762 \u7684 \u8def\u5f84 \u635f\u8017 \u8ba1\u7b97 \u56e0 \u6a21\u62df \u901f\u5ea6 \u800c \u7565\u8fc7 \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u53c2\u6570 combined _ antenna _ gain float $ 10.0 $ \u53d1\u5c04 \u53d1\u5c04\u673a \u548c \u63a5\u6536 \u63a5\u6536\u673a \u5929\u7ebf \u7684 \u7ec4\u5408 \u589e\u76ca \uff08 \u4ee5 dBi \u4e3a \u5355\u4f4d \uff09 \uff0c \u8f90\u5c04 \u6548\u7387 \u8f90\u5c04\u6548\u7387 \u548c \u65b9\u5411 \u5411\u6027 \u65b9\u5411\u6027 \u7684 \u53c2\u6570 d _ ref float $ 1.0 $ \u5bf9\u6570 \u8ddd\u79bb \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u7684 \u53c2\u8003 \u8ddd\u79bb \uff08 \u5355\u4f4d \uff1a \u7c73 \uff09 path _ loss _ exponent float 2.7 \u7531\u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u906e\u6321 \u5bfc\u81f4 \u7684 \u975e \u89c6\u8ddd \u635f\u8017 \u53c2\u6570 scenario string urban \u9009\u9879 \uff1a [ urban , rustic , highly available ] \uff0c \u5b9a\u4e49 \u8870\u843d \u566a\u58f0 \u53c2\u6570 path _ loss _ model string geometric \u4f7f\u7528 \u7684 \u901a\u7528 \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u3002 \u9009\u9879 \uff1a [ geometric , winor ] use _ etsi _ fading bool true \u4f7f\u7528 ETSI \u51fa\u7248 \u51fa\u7248\u7269 \u4e2d \u63d0\u5230 \u7684 \u8870\u843d \u53c2\u6570 \uff08 true \uff09 \uff0c \u6216 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8870\u843d \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee custom _ fading _ stddev float 0.0 \u8870\u51cf \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \uff0c \u4ec5\u5f53 use _ etsi _ fading \u8bbe\u7f6e \u4e3a false \u65f6\u624d \u4f7f\u7528","title":"V2X \u4f20\u611f\u5668 \u84dd\u56fe \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 TrueCompatibleNode \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 \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 \u4eff\u771f 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 TrueCompatibleNode \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002","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 \u4eff\u771f 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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \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 \u538b\u7ebf \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \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 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u8def\u5f84 \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 documentation"},{"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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \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 \u538b\u7ebf \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \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 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u8def\u5f84 \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 \u6865 \u6587\u6863 \u8fd9\u662f ROS \u6865 \u7684 \u6587\u6863 \uff0c \u5b83 \u5b9e\u73b0 \u4e86 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 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS1 \u548c ROS2 \u90fd \u662f \u76f8\u5bb9 \u7684 \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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 \u96f7\u8fbe \u548c IMU \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u5982 \u53d8\u6362 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u538b\u7ebf \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u5236\u52a8\u5668 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002 \u5f00\u59cb \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 \u7a0b\u5e8f \u7a0b\u5e8f\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u540c\u4e00 API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3 \u4e86\u89e3 \u5176\u4ed6 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 - \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u6362 \u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u8def\u5f84 \u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4e86 \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 \u4e0e Carla Scenario Runner \u4e00\u8d77 \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u66f2 \u63a7\u5236 - \u5c06 \u626d\u66f2 \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ plugin - \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4ece \u4eff\u771f \u4e2d \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 \u63d0\u4f9b \u7684 \u53c2\u8003 \u4e3b\u9898 ROS messages - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"ROS \u6865 \u6587\u6863"},{"location":"ros_index/#ros","text":"\u8fd9\u662f ROS \u6865 \u7684 \u6587\u6863 \uff0c \u5b83 \u5b9e\u73b0 \u4e86 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 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS1 \u548c ROS2 \u90fd \u662f \u76f8\u5bb9 \u7684 \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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 \u96f7\u8fbe \u548c IMU \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u5982 \u53d8\u6362 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u538b\u7ebf \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u5236\u52a8\u5668 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \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 \u6587\u6863"},{"location":"ros_index/#_1","text":"\u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865","title":"\u5f00\u59cb"},{"location":"ros_index/#ros_1","text":"CARLA \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b \u7a0b\u5e8f \u7a0b\u5e8f\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u540c\u4e00 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_index/#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 - \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u6362 \u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u8def\u5f84 \u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4e86 \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 \u4e0e Carla Scenario Runner \u4e00\u8d77 \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u66f2 \u63a7\u5236 - \u5c06 \u626d\u66f2 \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ plugin - \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4ece \u4eff\u771f \u4e2d \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe","title":"\u4e86\u89e3 \u5176\u4ed6 ROS \u6865\u63a5 \u5305"},{"location":"ros_index/#_2","text":"ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u4e3b\u9898 ROS messages - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"\u63a2\u7d22 \u53c2\u8003\u8d44\u6599"},{"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 2 \u7684 ROS \u6865 \u5b89\u88c5 \u672c\u8282 \u662f \u5173\u4e8e \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u4ee5 \u4e0e ROS 2 \u4e00\u8d77 \u4f7f\u7528 \u7684 \u6307\u5357 \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 \u5de5\u4f5c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 \u9002\u7528 \u4e8e Windows \u7684 ROS \u4ecd \u5728 \u5b9e\u9a8c \u3002 \u5b83 \u53ea \u5728 Linux \u7cfb\u7edf \u4e0a \u8fdb\u884c \u8fc7 \u6d4b\u8bd5 \u3002 \u5f00\u59cb \u4e4b\u524d \u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u5b89\u88c5 ROS : ROS 2 Foxy \u2014 \u9488\u5bf9 Ubuntu 20.04 ( Focal ) - \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u662f \u7528 rviz \u5c06 ROS \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 CARLA 0.9 . 11 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u9075\u5faa \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216\u8005 \u4e3a Linux \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e CARLA \u7248\u672c \u5339\u914d \u76f8\u5339\u914d \u3002 ROS \u6865 \u5b89\u88c5 \u6ce8\u610f Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \u8fd8 \u4e0d\u80fd \u7528\u4e8e ROS 2 \u3002 1 . \u8bbe\u7f6e \u9879\u76ee \u76ee\u5f55 \u5e76 \u514b\u9686 ROS \u7f51\u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a 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 . \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / foxy / setup . bash 3 . \u5b89\u88c5 ROS \u4f9d\u8d56 \uff1a rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . \u4f7f\u7528 colcon \u6784\u5efa ROS \u6865 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \uff1a colcon build \u8fd0\u884c ROS \u6865 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 \u6d4b\u8bd5 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 2 \u7684 ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros2/#ros-2ros","text":"\u672c\u8282 \u662f \u5173\u4e8e \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u4ee5 \u4e0e ROS 2 \u4e00\u8d77 \u4f7f\u7528 \u7684 \u6307\u5357 \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 \u5de5\u4f5c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 \u9002\u7528 \u4e8e Windows \u7684 ROS \u4ecd \u5728 \u5b9e\u9a8c \u3002 \u5b83 \u53ea \u5728 Linux \u7cfb\u7edf \u4e0a \u8fdb\u884c \u8fc7 \u6d4b\u8bd5 \u3002","title":"ROS 2 \u7684 ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros2/#_1","text":"\u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u5b89\u88c5 ROS : ROS 2 Foxy \u2014 \u9488\u5bf9 Ubuntu 20.04 ( Focal ) - \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u662f \u7528 rviz \u5c06 ROS \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 CARLA 0.9 . 11 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u9075\u5faa \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216\u8005 \u4e3a Linux \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e CARLA \u7248\u672c \u5339\u914d \u76f8\u5339\u914d \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"ros_installation_ros2/#ros","text":"\u6ce8\u610f Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \u8fd8 \u4e0d\u80fd \u7528\u4e8e ROS 2 \u3002 1 . \u8bbe\u7f6e \u9879\u76ee \u76ee\u5f55 \u5e76 \u514b\u9686 ROS \u7f51\u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a 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 . \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / foxy / setup . bash 3 . \u5b89\u88c5 ROS \u4f9d\u8d56 \uff1a rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . \u4f7f\u7528 colcon \u6784\u5efa ROS \u6865 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \uff1a colcon build","title":"ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros2/#ros_1","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":"\u8fd0\u884c ROS \u6865"},{"location":"ros_installation_ros2/#_2","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":"\u6d4b\u8bd5"},{"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 \u540d\u79f0 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u538b\u7ebf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u538b\u7ebf \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 \u8def\u5f84 \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 \u540d\u79f0 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u538b\u7ebf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u538b\u7ebf \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":"\u8def\u5f84 \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 \u538b\u7ebf \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 \u53d8\u6362 \uff08 TF \uff09 \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 \u8f6c\u6362 \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 \u8f6c\u6362 \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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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":"\u538b\u7ebf \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 \u8f6c\u6362 \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 \u8f6c\u6362 \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002","title":"\u53d8\u6362 \uff08 TF \uff09 \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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53d1\u5e03 \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 \u8282\u62cd 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 \u8282\u62cd \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8282\u62cd \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 \u8282\u62cd \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 # \u5bf9\u4e8e ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # \u5bf9\u4e8e 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 \u9500\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 \u53d1\u5e03 \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 \u8282\u62cd 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 \u8282\u62cd \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8282\u62cd \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 \u8282\u62cd \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 # \u5bf9\u4e8e ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # \u5bf9\u4e8e 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 \u9500\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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4ee3\u7406 \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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4ee3\u7406 \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":"simulator_keyboard_input/","text":"Carla \u6a21\u62df \u6a21\u62df\u5668 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u5728 \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u4e2d \u73a9\u6e38 \u6e38\u620f \u73a9\u6e38\u620f \u65f6 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6309\u952e \u7ed1\u5b9a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8f66\u8f86 \u63a7\u5236 \u4ec5 \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd0\u884c \u65f6 \u53ef\u7528 \u3002 \u952e \u52a8\u4f5c W \u6cb9\u95e8 S \u5239\u8f66 A D \u65b9\u5411 \u65b9\u5411\u76d8 Q \u5207\u6362 \u5012 \u6863 Space \u624b\u5239 P \u5207\u6362 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \\ leftarrow \\ rightarrow \\ uparrow \\ downarrow \u79fb\u52a8 \u76f8\u673a PgUp PgDn \u653e\u5927 \u548c \u7f29\u5c0f \u9f20\u6807 \u6eda\u8f6e \u653e\u5927 \u548c \u7f29\u5c0f Tab \u5207\u6362 \u673a\u8f7d \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 F11 \u5207\u6362 \u5168\u5c4f R \u91cd\u542f \u5173\u5361 G \u5207\u6362 \u5934\u663e C \u6539\u53d8 \u5929\u6c14 / \u5149\u7167 Enter \u8df3 F \u4f7f\u7528 \u529b F \u9000\u51fa","title":"Carla \u6a21\u62df\u5668 \u952e\u76d8\u8f93\u5165"},{"location":"simulator_keyboard_input/#carla","text":"\u5728 \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u4e2d \u73a9\u6e38 \u6e38\u620f \u73a9\u6e38\u620f \u65f6 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6309\u952e \u7ed1\u5b9a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8f66\u8f86 \u63a7\u5236 \u4ec5 \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd0\u884c \u65f6 \u53ef\u7528 \u3002 \u952e \u52a8\u4f5c W \u6cb9\u95e8 S \u5239\u8f66 A D \u65b9\u5411 \u65b9\u5411\u76d8 Q \u5207\u6362 \u5012 \u6863 Space \u624b\u5239 P \u5207\u6362 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \\ leftarrow \\ rightarrow \\ uparrow \\ downarrow \u79fb\u52a8 \u76f8\u673a PgUp PgDn \u653e\u5927 \u548c \u7f29\u5c0f \u9f20\u6807 \u6eda\u8f6e \u653e\u5927 \u548c \u7f29\u5c0f Tab \u5207\u6362 \u673a\u8f7d \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 F11 \u5207\u6362 \u5168\u5c4f R \u91cd\u542f \u5173\u5361 G \u5207\u6362 \u5934\u663e C \u6539\u53d8 \u5929\u6c14 / \u5149\u7167 Enter \u8df3 F \u4f7f\u7528 \u529b F \u9000\u51fa","title":"Carla \u6a21\u62df\u5668 \u952e\u76d8\u8f93\u5165"},{"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 Carla \u67b6\u6784 \u7684 \u8bbe\u8ba1 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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":"Start introduction"},{"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 Carla \u67b6\u6784 \u7684 \u8bbe\u8ba1 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 # \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 \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 # \u7981\u7528 \u6e32\u67d3 . / config . py -- map Town05 # \u6539\u53d8 \u5730\u56fe \u3001 . / config . py -- weather ClearNoon # \u6539\u53d8 \u5929\u6c14 . / config . py -- help # \u68c0\u67e5 \u6240\u6709 \u53ef \u83b7\u5f97 \u7684 \u914d\u7f6e \u9009\u9879 \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":"Start quickstart"},{"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 # \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 \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 # \u7981\u7528 \u6e32\u67d3 . / config . py -- map Town05 # \u6539\u53d8 \u5730\u56fe \u3001 . / config . py -- weather ClearNoon # \u6539\u53d8 \u5929\u6c14 . / config . py -- help # \u68c0\u67e5 \u6240\u6709 \u53ef \u83b7\u5f97 \u7684 \u914d\u7f6e \u9009\u9879","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 \u4fee\u590d \u9875\u9762 \u5185 \u7684 \u8df3\u8f6c \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 UE5 \u4e2d \u5b9e\u73b0 \u8fdc\u7a0b \u591a\u7528 \u7528\u6237 \u591a\u7528\u6237 \u534f\u4f5c \u7f16\u8f91 \u3001 \u8868\u60c5 \u5efa\u6a21 Epic \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 Carla \u793e\u533a \u3001 \u6df1\u4fe1 \u79d1\u521b \u3001 \u4e2d\u6587 \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 carla \u793a\u4f8b 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 \u6e38\u620f \u5f00\u53d1 \uff1a \u591a \u73a9\u5bb6 \u3001 \u4e0a\u4e0b \u9009\u62e9 \u5e76 \u56de\u8f66 SUMMIT \uff1a \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u6df7\u5408 \u4ea4\u901a \u6761\u4ef6 \u4e0b \u7684 \u57ce\u5e02 \u9a7e\u9a76 \u6a21\u62df \u6a21\u62df\u5668 \u4e00\u53e5 \u8bdd \u751f\u6210 \u60f3\u8981 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u5173\u952e \u573a\u666f \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5de5\u5177 Carla \u8c03\u8bd5 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u94fe\u63a5 \u3002 \u5b66\u672f \u7814\u7a76 \u5b66\u672f\u7814\u7a76 \u611f\u77e5 \u8f66\u8f86 / \u884c\u4eba \uff1a \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u884c\u4e3a \u5efa\u6a21 \u3001 \u5bf9\u6297 \u8bad\u7ec3 \u3001 \u591a \u6a21\u6001 \u878d\u5408 \u3001 \u60ef\u89c6 \u878d\u5408 \u7b49 \u3002 \u884c\u4eba \uff1a \u8fc7 \u9a6c\u8def \u548c \u4e0d\u8fc7 \u9a6c\u8def \u5206\u7c7b \u3001 \u59ff\u6001 \u81ea \u7f16\u7801 \uff08 \u589e\u52a0 \u6240 \u63d0\u53d6 \u9aa8\u67b6 \u7684 \u8d28\u91cf \uff09 \u3001 \u59ff\u6001 \u4f30\u8ba1 \u3001 \u59ff\u6001 \u62ac\u5347 \uff1b \u8fd0\u52a8 \u5b9a\u5411 \u91cd\u5b9a\u5411 \u3001 \u98ce\u683c \u8fc1\u79fb \uff1b \u89c4\u5212 \u5efa\u56fe \u3001 \u5b9a\u4f4d \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002 \u51b3\u7b56 \u7684 \u4f26\u7406 \u548c \u516c\u5e73 \u3002 \u63a7\u5236 PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002 \u901a\u8fc7 carla . Walker . set _ bones ( ) \u5bf9 \u884c\u4eba \u9aa8\u9abc \u8fdb\u884c \u53d8\u6362 \u3002 \u573a\u666f \u4ee3\u7406 \u3001 \u667a\u80fd \u9a7e\u9a76 \u7b49 \u3002 \u63d0\u4f9b \u6570\u636e \u63d0\u4f9b\u6570\u636e \u5b6a\u751f \u5efa\u7b51 \u751f\u6210 \u7684 Python \u63a5\u53e3 \u3002 \u4ee3\u7406 \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u9884\u6d4b \u9a7e\u9a76 \u884c\u4e3a \u7684 \u795e\u7ecf \u6fc0\u6d3b \u7ed3\u6784 CloningDCB \uff1a \u57fa\u4e8e \u514b\u9686 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8ba4\u77e5 \u884c\u4e3a \u7684 \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6280\u672f \u62a5\u544a \u3002 \u9a7e\u9a76 \u3001 \u884c\u8d70 \u3001 \u7ad9\u7acb \u3001 \u8dd1\u6b65 \uff1b \u827a\u672f \u589e\u5f3a \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 \u4f53\u79ef \u96fe \u3001 \u96ea \u3001 \u810f \u7684 \u652f\u6301 \uff1b \u6e56 \u5de5\u5546 \u3001 \u91d1 \u91b4 \u9ad8\u901f \u573a\u666f \u5927 \u6587\u4ef6 \u652f\u6301 \uff1b \u6e56 \u5de5\u5546 \u573a\u666f \u5206\u652f https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u4e2d \u7535 \u8f6f\u4ef6 \u8f6f\u4ef6\u56ed \u65b0 \u5b89\u88c5 apkpure \uff0c \u518d \u5b89\u88c5 RealityScan \u884c\u4eba \u53c2\u8003 \u884c\u4eba \u6784\u5efa \u6d41\u7a0b \u3002 \u672a \u5b9a\u4f4d \u529f\u80fd \uff1a \u8dd1\u6b65 \uff1b \u672a \u5b9e\u73b0 \u529f\u80fd \uff1a \u4ea4\u8c08 \u3001 \u53eb \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \u3001 \u5750\u4e0b \u3002 \u865a\u5e7b \u5f15\u64ce \u5f15\u64ce \u4f18\u5316 \uff1a \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 \u5904\u7406 \u78b0\u649e \u3002 \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u8f66\u8f86 \u78b0\u649e \u58f0\u97f3 \u865a\u5e7b \u97f3\u9891 \u7684 \u58f0\u5b66 \u9879\u76ee \u3002 \u7528 C++ \u589e\u52a0 \u97f3\u89c6 \u89c6\u9891 \u97f3\u89c6\u9891 \u4e92\u52a8 \u3001 \u5229\u7528 \u84dd\u56fe \u5236\u4f5c \u7acb\u4f53 \u73af\u5883 \u58f0 \u3002","title":"\u5f85 \u505a"},{"location":"todo/#_1","text":"","title":"\u5f85 \u505a"},{"location":"todo/#_2","text":"\u4fee\u590d \u9875\u9762 \u5185 \u7684 \u8df3\u8f6c \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 UE5 \u4e2d \u5b9e\u73b0 \u8fdc\u7a0b \u591a\u7528 \u7528\u6237 \u591a\u7528\u6237 \u534f\u4f5c \u7f16\u8f91 \u3001 \u8868\u60c5 \u5efa\u6a21 Epic \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 Carla \u793e\u533a \u3001 \u6df1\u4fe1 \u79d1\u521b \u3001 \u4e2d\u6587 \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 carla \u793a\u4f8b 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 \u6e38\u620f \u5f00\u53d1 \uff1a \u591a \u73a9\u5bb6 \u3001 \u4e0a\u4e0b \u9009\u62e9 \u5e76 \u56de\u8f66 SUMMIT \uff1a \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u6df7\u5408 \u4ea4\u901a \u6761\u4ef6 \u4e0b \u7684 \u57ce\u5e02 \u9a7e\u9a76 \u6a21\u62df \u6a21\u62df\u5668 \u4e00\u53e5 \u8bdd \u751f\u6210 \u60f3\u8981 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u5173\u952e \u573a\u666f","title":"\u6280\u672f \u6587\u6863"},{"location":"todo/#_3","text":"Carla \u8c03\u8bd5 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u94fe\u63a5 \u3002","title":"\u7b2c\u4e09\u65b9 \u5de5\u5177"},{"location":"todo/#_4","text":"","title":"\u5b66\u672f\u7814\u7a76"},{"location":"todo/#_5","text":"\u8f66\u8f86 / \u884c\u4eba \uff1a \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u884c\u4e3a \u5efa\u6a21 \u3001 \u5bf9\u6297 \u8bad\u7ec3 \u3001 \u591a \u6a21\u6001 \u878d\u5408 \u3001 \u60ef\u89c6 \u878d\u5408 \u7b49 \u3002 \u884c\u4eba \uff1a \u8fc7 \u9a6c\u8def \u548c \u4e0d\u8fc7 \u9a6c\u8def \u5206\u7c7b \u3001 \u59ff\u6001 \u81ea \u7f16\u7801 \uff08 \u589e\u52a0 \u6240 \u63d0\u53d6 \u9aa8\u67b6 \u7684 \u8d28\u91cf \uff09 \u3001 \u59ff\u6001 \u4f30\u8ba1 \u3001 \u59ff\u6001 \u62ac\u5347 \uff1b \u8fd0\u52a8 \u5b9a\u5411 \u91cd\u5b9a\u5411 \u3001 \u98ce\u683c \u8fc1\u79fb \uff1b","title":"\u611f\u77e5"},{"location":"todo/#_6","text":"\u5efa\u56fe \u3001 \u5b9a\u4f4d \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002 \u51b3\u7b56 \u7684 \u4f26\u7406 \u548c \u516c\u5e73 \u3002","title":"\u89c4\u5212"},{"location":"todo/#_7","text":"PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002 \u901a\u8fc7 carla . Walker . set _ bones ( ) \u5bf9 \u884c\u4eba \u9aa8\u9abc \u8fdb\u884c \u53d8\u6362 \u3002","title":"\u63a7\u5236"},{"location":"todo/#_8","text":"\u4ee3\u7406 \u3001 \u667a\u80fd \u9a7e\u9a76 \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/#_9","text":"\u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u9884\u6d4b \u9a7e\u9a76 \u884c\u4e3a \u7684 \u795e\u7ecf \u6fc0\u6d3b \u7ed3\u6784 CloningDCB \uff1a \u57fa\u4e8e \u514b\u9686 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8ba4\u77e5 \u884c\u4e3a \u7684 \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6280\u672f \u62a5\u544a \u3002 \u9a7e\u9a76 \u3001 \u884c\u8d70 \u3001 \u7ad9\u7acb \u3001 \u8dd1\u6b65 \uff1b","title":"\u4ee3\u7406"},{"location":"todo/#_10","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 \u4f53\u79ef \u96fe \u3001 \u96ea \u3001 \u810f \u7684 \u652f\u6301 \uff1b \u6e56 \u5de5\u5546 \u3001 \u91d1 \u91b4 \u9ad8\u901f \u573a\u666f \u5927 \u6587\u4ef6 \u652f\u6301 \uff1b \u6e56 \u5de5\u5546 \u573a\u666f \u5206\u652f https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u4e2d \u7535 \u8f6f\u4ef6 \u8f6f\u4ef6\u56ed \u65b0 \u5b89\u88c5 apkpure \uff0c \u518d \u5b89\u88c5 RealityScan","title":"\u827a\u672f \u589e\u5f3a"},{"location":"todo/#_11","text":"\u53c2\u8003 \u884c\u4eba \u6784\u5efa \u6d41\u7a0b \u3002 \u672a \u5b9a\u4f4d \u529f\u80fd \uff1a \u8dd1\u6b65 \uff1b \u672a \u5b9e\u73b0 \u529f\u80fd \uff1a \u4ea4\u8c08 \u3001 \u53eb \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \u3001 \u5750\u4e0b \u3002","title":"\u884c\u4eba"},{"location":"todo/#_12","text":"\u5f15\u64ce \u4f18\u5316 \uff1a \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002 \u52a0\u8f7d \u8fdb\u5ea6 \uff1b","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"todo/#_13","text":"\u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce Chrono \u5904\u7406 \u78b0\u649e \u3002 \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u8f66\u8f86 \u78b0\u649e","title":"\u6709\u9650\u5143"},{"location":"todo/#_14","text":"\u865a\u5e7b \u97f3\u9891 \u7684 \u58f0\u5b66 \u9879\u76ee \u3002 \u7528 C++ \u589e\u52a0 \u97f3\u89c6 \u89c6\u9891 \u97f3\u89c6\u9891 \u4e92\u52a8 \u3001 \u5229\u7528 \u84dd\u56fe \u5236\u4f5c \u7acb\u4f53 \u73af\u5883 \u58f0 \u3002","title":"\u58f0\u97f3"},{"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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ee3\u7406 \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 \u4ee3\u7406 \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":"Ts traffic simulation overview"},{"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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ee3\u7406 \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 \u4ee3\u7406 \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":"tuto A add props"},{"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 N \u8f6e \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 : # \u7f51\u683c \u7684 \u539f\u70b9 \u3002 \u5c06 \u5176 \u653e\u7f6e \u5728 \u573a\u666f \u7684 0 \u70b9 - BikeBody : # \u6a21\u578b \u8eab\u4f53 \u7684 \u4e2d\u5fc3 \u3002 - Pedals : # \u5982\u679c \u8f66\u8f86 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5c06 \u811a\u8e0f \u8e0f\u677f \u811a\u8e0f\u677f \u7ed1 \u5728 \u8fd9\u5757 \u9aa8\u5934 \u4e0a \uff0c \u5c31 \u4f1a \u968f\u7740 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u800c \u65cb\u8f6c \u3002 - RightPedal : # \u5982\u679c \u8f66\u8f86 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5219 \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u811a\u90e8 \u4f4d\u7f6e \u5e76 \u4e0e \u811a\u8e0f \u8e0f\u677f \u811a\u8e0f\u677f \u4e00\u8d77 \u65cb\u8f6c \u3002 - LeftPedal : # ^ - RearWheel : # \u8f66\u8f86 \u540e\u8f6e - Handler : # \u4e0e \u8f66\u8f86 \u7684 \u524d\u8f6e \u4e00\u8d77 \u65cb\u8f6c \uff0c \u5c06 \u8f66\u8f86 \u64cd\u7eb5 \u64cd\u7eb5\u5668 \u56fa\u5b9a \u5728 \u5176 \u4e0a \u3002 - HandlerMidBone : # \u5b9a\u4f4d \u5728 \u524d\u8f6e \u9aa8\u67b6 \u4e0a \uff0c \u4ee5 \u786e\u5b9a \u64cd\u7eb5 \u64cd\u7eb5\u5668 \u4e0e \u8f66\u8f6e \u7684 \u65b9\u5411 - HandlerRight : # \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u624b \u7684 \u4f4d\u7f6e \uff0c \u65e0\u9700 \u5c06 \u5176 \u7ed1\u5b9a \u5230 \u4efb\u4f55 \u4e1c\u897f \u3002 - HandlerLeft : # ^ - Frontwheel : # \u8f66\u8f86 \u7684 \u524d\u8f6e \u3002 - RightHelperRotator : # \u8fd9 \u56db\u5757 \u989d\u5916 \u7684 \u9aa8\u5934 \u662f \u4e3a \u4e00\u4e2a \u8fc7\u65f6 \u7684 \u7cfb\u7edf \u63d0\u4f9b \u7684 \uff0c \u8be5 \u7cfb\u7edf \u901a\u8fc7 \u4f7f\u7528 \u4f20\u7edf \u7684 \u9690\u5f62 \u8f66\u8f6e \u4f7f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7a33\u5b9a - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u9acb\u9aa8 \u7684 \u4f4d\u7f6e \u3002 \u65e0\u9700 \u5c06 \u5176 \u7ed1 \u5728 \u4efb\u4f55 \u4e1c\u897f \u4e0a \uff0c \u53ea \u9700 \u5c0f\u5fc3 \u653e\u7f6e \u5373\u53ef \u3002 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":"tuto A add vehicle"},{"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 N \u8f6e \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 : # \u7f51\u683c \u7684 \u539f\u70b9 \u3002 \u5c06 \u5176 \u653e\u7f6e \u5728 \u573a\u666f \u7684 0 \u70b9 - BikeBody : # \u6a21\u578b \u8eab\u4f53 \u7684 \u4e2d\u5fc3 \u3002 - Pedals : # \u5982\u679c \u8f66\u8f86 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5c06 \u811a\u8e0f \u8e0f\u677f \u811a\u8e0f\u677f \u7ed1 \u5728 \u8fd9\u5757 \u9aa8\u5934 \u4e0a \uff0c \u5c31 \u4f1a \u968f\u7740 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u800c \u65cb\u8f6c \u3002 - RightPedal : # \u5982\u679c \u8f66\u8f86 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5219 \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u811a\u90e8 \u4f4d\u7f6e \u5e76 \u4e0e \u811a\u8e0f \u8e0f\u677f \u811a\u8e0f\u677f \u4e00\u8d77 \u65cb\u8f6c \u3002 - LeftPedal : # ^ - RearWheel : # \u8f66\u8f86 \u540e\u8f6e - Handler : # \u4e0e \u8f66\u8f86 \u7684 \u524d\u8f6e \u4e00\u8d77 \u65cb\u8f6c \uff0c \u5c06 \u8f66\u8f86 \u64cd\u7eb5 \u64cd\u7eb5\u5668 \u56fa\u5b9a \u5728 \u5176 \u4e0a \u3002 - HandlerMidBone : # \u5b9a\u4f4d \u5728 \u524d\u8f6e \u9aa8\u67b6 \u4e0a \uff0c \u4ee5 \u786e\u5b9a \u64cd\u7eb5 \u64cd\u7eb5\u5668 \u4e0e \u8f66\u8f6e \u7684 \u65b9\u5411 - HandlerRight : # \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u624b \u7684 \u4f4d\u7f6e \uff0c \u65e0\u9700 \u5c06 \u5176 \u7ed1\u5b9a \u5230 \u4efb\u4f55 \u4e1c\u897f \u3002 - HandlerLeft : # ^ - Frontwheel : # \u8f66\u8f86 \u7684 \u524d\u8f6e \u3002 - RightHelperRotator : # \u8fd9 \u56db\u5757 \u989d\u5916 \u7684 \u9aa8\u5934 \u662f \u4e3a \u4e00\u4e2a \u8fc7\u65f6 \u7684 \u7cfb\u7edf \u63d0\u4f9b \u7684 \uff0c \u8be5 \u7cfb\u7edf \u901a\u8fc7 \u4f7f\u7528 \u4f20\u7edf \u7684 \u9690\u5f62 \u8f66\u8f6e \u4f7f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7a33\u5b9a - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u9acb\u9aa8 \u7684 \u4f4d\u7f6e \u3002 \u65e0\u9700 \u5c06 \u5176 \u7ed1 \u5728 \u4efb\u4f55 \u4e1c\u897f \u4e0a \uff0c \u53ea \u9700 \u5c0f\u5fc3 \u653e\u7f6e \u5373\u53ef \u3002 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":"tuto A create standalone"},{"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_bat/","text":"\u5904\u7406 \u6279\u5904\u7406 \u811a\u672c % ~ dp0 ~ \u662f \u6269\u5c55 \u7684 \u610f\u601d \uff0c \u53d8\u91cf \u6269\u5145 ( \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd ) \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u628a \u4e00\u4e2a \u76f8\u5bf9 \u8def\u5f84 \u76f8\u5bf9\u8def\u5f84 \u8f6c\u6362 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 % 0 \u4ee3\u6307 \u5904\u7406 \u6279\u5904\u7406 \u6587\u4ef6 \u81ea\u8eab \uff08 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \" D : \\ test \\ bat \\ test . bat \" \uff0c \u6ce8\u610f \u6709 \u5f15\u53f7 \u53cc\u5f15\u53f7 \uff09 % ~ d0 \u662f \u6307 \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76d8\u7b26 \uff0c \u5176\u4e2d d \u4ee3\u8868 drive \u3002 ( \u6269\u5145 \u5230 \u76d8\u7b26 D : ) % ~ p0 \u662f \u6307 \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76ee\u5f55 \uff0c \u5176\u4e2d p \u4ee3\u8868 path \u3002 ( \u6269\u5145 \u5230 \u8def\u5f84 \\ test \\ bat \\ \uff0c \u6ce8\u610f \u6700\u540e \u6709\u4e2a \\ \uff09 % ~ dp0 \u662f \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76d8\u7b26 \u52a0 \u8def\u5f84 \u3002 \uff08 \u6269\u5145 \u5230 \u76d8\u7b26 \u548c \u8def\u5f84 \uff1a D : \\ test \\ bat \\ \uff09","title":"tuto D bat"},{"location":"tuto_D_bat/#_1","text":"% ~ dp0 ~ \u662f \u6269\u5c55 \u7684 \u610f\u601d \uff0c \u53d8\u91cf \u6269\u5145 ( \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd ) \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u628a \u4e00\u4e2a \u76f8\u5bf9 \u8def\u5f84 \u76f8\u5bf9\u8def\u5f84 \u8f6c\u6362 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 % 0 \u4ee3\u6307 \u5904\u7406 \u6279\u5904\u7406 \u6587\u4ef6 \u81ea\u8eab \uff08 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \" D : \\ test \\ bat \\ test . bat \" \uff0c \u6ce8\u610f \u6709 \u5f15\u53f7 \u53cc\u5f15\u53f7 \uff09 % ~ d0 \u662f \u6307 \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76d8\u7b26 \uff0c \u5176\u4e2d d \u4ee3\u8868 drive \u3002 ( \u6269\u5145 \u5230 \u76d8\u7b26 D : ) % ~ p0 \u662f \u6307 \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76ee\u5f55 \uff0c \u5176\u4e2d p \u4ee3\u8868 path \u3002 ( \u6269\u5145 \u5230 \u8def\u5f84 \\ test \\ bat \\ \uff0c \u6ce8\u610f \u6700\u540e \u6709\u4e2a \\ \uff09 % ~ dp0 \u662f \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76d8\u7b26 \u52a0 \u8def\u5f84 \u3002 \uff08 \u6269\u5145 \u5230 \u76d8\u7b26 \u548c \u8def\u5f84 \uff1a D : \\ test \\ bat \\ \uff09","title":"\u6279\u5904\u7406 \u811a\u672c"},{"location":"tuto_D_cmake/","text":"CMake \u547d\u4ee4 \u4ecb\u7ecd \u53c2\u8003 \u6559\u7a0b \u3002 \u53c2\u6570 \u89e3\u91ca \u89e3\u91ca \u5728 Util / BuildTools / * \u76ee\u5f55 \u4e0b \u6240 \u4f7f\u7528 \u5230 \u7684 \u5404\u4e2a \u811a\u672c \uff1a \u53c2\u6570 \u542b\u4e49 - G % GENERATOR% % PLATFORM% \u6307\u5b9a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3001 \u5e73\u53f0 - DCMAKE _ BUILD _ TYPE = Client \u6307\u5b9a \u6784\u5efa \u7c7b\u578b - DCMAKE _ CXX _ FLAGS _ RELEASE = \" / MD / MP \" \u4e3a / MD / MP \u6784\u5efa \u8bbe\u7f6e C++ \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u4f18\u5316 \u7ea7\u522b - DCMAKE _ INSTALL _ PREFIX \u6307\u5b9a \u8fd9\u4e9b \u6587\u4ef6 \u5e94\u8be5 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u54ea\u4e2a \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 PythonAPI \u91cc \uff09 -- build . \u5bf9 \u751f\u6210 \u597d \u7684 \u9879\u76ee \u8fdb\u884c \u7f16\u8bd1 \u6784\u5efa \uff0c . \u6307 \u7684 \u662f \u751f\u6210 \u597d \u7684 build tree \u7684 \u8def\u5f84 -- config Release \u6784\u5efa \u540e\u4f1a \u6309 install \u89c4\u5219 \u5b89\u88c5 \u4e00\u4efd \uff0c \u540c\u65f6 \u5728 - DCMAKE _ INSTALL _ PREFIX \u6307\u5b9a \u7684 \u8def\u5f84 \u4e0b \u4e5f \u4f1a \u5b89\u88c5 \u4e00\u4efd \u3002 findstr / V \" Up - to - date : \" \u5bf9 \u6253\u5370 \u5370\u4e0d \u5305\u542b \u76f8\u7b26 \u9879\u76ee \u7684 \u884c \u3002","title":"tuto D cmake"},{"location":"tuto_D_cmake/#cmake","text":"\u53c2\u8003 \u6559\u7a0b \u3002","title":"CMake \u547d\u4ee4 \u4ecb\u7ecd"},{"location":"tuto_D_cmake/#_1","text":"\u89e3\u91ca \u5728 Util / BuildTools / * \u76ee\u5f55 \u4e0b \u6240 \u4f7f\u7528 \u5230 \u7684 \u5404\u4e2a \u811a\u672c \uff1a \u53c2\u6570 \u542b\u4e49 - G % GENERATOR% % PLATFORM% \u6307\u5b9a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3001 \u5e73\u53f0 - DCMAKE _ BUILD _ TYPE = Client \u6307\u5b9a \u6784\u5efa \u7c7b\u578b - DCMAKE _ CXX _ FLAGS _ RELEASE = \" / MD / MP \" \u4e3a / MD / MP \u6784\u5efa \u8bbe\u7f6e C++ \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u4f18\u5316 \u7ea7\u522b - DCMAKE _ INSTALL _ PREFIX \u6307\u5b9a \u8fd9\u4e9b \u6587\u4ef6 \u5e94\u8be5 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u54ea\u4e2a \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 PythonAPI \u91cc \uff09 -- build . \u5bf9 \u751f\u6210 \u597d \u7684 \u9879\u76ee \u8fdb\u884c \u7f16\u8bd1 \u6784\u5efa \uff0c . \u6307 \u7684 \u662f \u751f\u6210 \u597d \u7684 build tree \u7684 \u8def\u5f84 -- config Release \u6784\u5efa \u540e\u4f1a \u6309 install \u89c4\u5219 \u5b89\u88c5 \u4e00\u4efd \uff0c \u540c\u65f6 \u5728 - DCMAKE _ INSTALL _ PREFIX \u6307\u5b9a \u7684 \u8def\u5f84 \u4e0b \u4e5f \u4f1a \u5b89\u88c5 \u4e00\u4efd \u3002 findstr / V \" Up - to - date : \" \u5bf9 \u6253\u5370 \u5370\u4e0d \u5305\u542b \u76f8\u7b26 \u9879\u76ee \u7684 \u884c \u3002","title":"\u53c2\u6570 \u89e3\u91ca"},{"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 \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 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 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 \u53d1\u51fa \u8282\u62cd \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":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 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 \u53d1\u51fa \u8282\u62cd \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":"\u5b9a\u5236 \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 \u4f53 \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 \u4f53 \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 \u4f53 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 \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 \u4f53 \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 \u4f53 \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 \u4f53 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u4f53 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 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 \u4f53 \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 \u4f53 \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 \u4f53 \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 \u7684 \u78b0\u649e \u4f53"},{"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 \u4f53 \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 \u4f53 \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 \u4f53 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 \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 \u4f53 \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 \u4f53 \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 \u4f53 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u4f53 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 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 \u4f53 \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 \u4f53 \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 \u4f53 \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_linux_debug/","text":"Linux \u4e0a \u7684 \u8c03\u8bd5 Python \u7a0b\u5e8f \u8c03\u8bd5 \u7a0b\u5e8f\u8c03\u8bd5 VScode \u6309 Ctrl + Shift + P \uff0c \u8f93\u5165 Python : Select Interpreter \u5e76 \u9009\u62e9 \uff1b \u9009\u62e9 \u6216 \u521b\u5efa \u6240 \u9700 \u7684 Python \u89e3\u91ca \u91ca\u5668 \u89e3\u91ca\u5668 \uff1b \u5355\u51fb \u884c\u53f7 \u5de6\u4fa7 \u8bbe\u7f6e \u65ad\u70b9 \uff1b \u70b9\u51fb \u53f3\u4e0a \u4e0a\u89d2 \u53f3\u4e0a\u89d2 \u4e09\u89d2 \u7bad\u5934 \uff0c \u9009\u62e9 Python Debugger : Debug Python File \uff1b shell wget - O - O : ( output ) \u4ee5 \u6307\u5b9a \u7684 \u6587\u4ef6 \u6587\u4ef6\u540d \u4fdd\u5b58 cut - d \" \" - f 1 - d : \u6307\u5b9a \u5b57\u6bb5 \u7684 \u5206\u9694 \u5206\u9694\u7b26 \uff0c \u9ed8\u8ba4 \u7684 \u5b57 \u6bb5 \u5206\u9694 \u5206\u9694\u7b26 \u4e3a \u201c TAB \u201d \uff1b - f : \u663e\u793a \u6307\u5b9a \u5b57\u6bb5 \u7684 \u5185\u5bb9 \uff1b \u67e5\u770b \u5df2\u6709 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff1a shell script conda env list Git \u975e \u5546\u7528 \u73af\u5883 \u4e0b \u7684 Git \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u5de5\u5177 SmartGit \u3002","title":"tuto D linux debug"},{"location":"tuto_D_linux_debug/#linux","text":"","title":"Linux \u4e0a \u7684 \u8c03\u8bd5"},{"location":"tuto_D_linux_debug/#python","text":"","title":"Python \u7a0b\u5e8f\u8c03\u8bd5"},{"location":"tuto_D_linux_debug/#vscode","text":"\u6309 Ctrl + Shift + P \uff0c \u8f93\u5165 Python : Select Interpreter \u5e76 \u9009\u62e9 \uff1b \u9009\u62e9 \u6216 \u521b\u5efa \u6240 \u9700 \u7684 Python \u89e3\u91ca \u91ca\u5668 \u89e3\u91ca\u5668 \uff1b \u5355\u51fb \u884c\u53f7 \u5de6\u4fa7 \u8bbe\u7f6e \u65ad\u70b9 \uff1b \u70b9\u51fb \u53f3\u4e0a \u4e0a\u89d2 \u53f3\u4e0a\u89d2 \u4e09\u89d2 \u7bad\u5934 \uff0c \u9009\u62e9 Python Debugger : Debug Python File \uff1b","title":"VScode"},{"location":"tuto_D_linux_debug/#shell","text":"wget - O - O : ( output ) \u4ee5 \u6307\u5b9a \u7684 \u6587\u4ef6 \u6587\u4ef6\u540d \u4fdd\u5b58 cut - d \" \" - f 1 - d : \u6307\u5b9a \u5b57\u6bb5 \u7684 \u5206\u9694 \u5206\u9694\u7b26 \uff0c \u9ed8\u8ba4 \u7684 \u5b57 \u6bb5 \u5206\u9694 \u5206\u9694\u7b26 \u4e3a \u201c TAB \u201d \uff1b - f : \u663e\u793a \u6307\u5b9a \u5b57\u6bb5 \u7684 \u5185\u5bb9 \uff1b \u67e5\u770b \u5df2\u6709 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff1a shell script conda env list","title":"shell"},{"location":"tuto_D_linux_debug/#git","text":"\u975e \u5546\u7528 \u73af\u5883 \u4e0b \u7684 Git \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u5de5\u5177 SmartGit \u3002","title":"Git"},{"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":"\u5982\u4f55 \u53d1\u5e03"},{"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_python_api/","text":"\u89e3\u8bfb setup . py \u5916\u90e8 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u542b\u4e49 shlwapi . lib \u5305\u542b \u4e86 \u5927\u91cf \u7684 Windows \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5904\u7406 \u65b9\u6cd5 Advapi32 . lib \u5305\u542b \u7684 \u51fd\u6570 \u4e0e \u5bf9\u8c61 \u7684 \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6ce8\u518c \u6ce8\u518c\u8868 \u7684 \u64cd\u63a7 \u4ee5\u53ca \u4e8b\u4ef6 \u65e5\u5fd7 \u6709\u5173 ole32 . lib \u4e00\u822c \u662f \u9700\u8981 \u751f\u6210 \u4e00\u4e2a \u552f\u4e00 \u7684 uuid \u65f6 \u7528\u5230 shell32 . lib \u5305\u542b \u4e86 \u4e00\u4e9b \u4e0e Shel \u76f8\u5173 \u7684 \u51fd\u6570 \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5b9a\u4e49 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u53ef\u4ee5 \u7528\u4e8e \u521b\u5efa \u548c \u7ba1\u7406 windows \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3001 \u6587\u4ef6 \u3001 \u5feb\u6377 \u65b9\u5f0f \u5feb\u6377\u65b9\u5f0f \u7b49 \u5bf9\u8c61 \uff0c \u4ee5\u53ca \u5b9e\u73b0 \u4e00\u4e9b \u4e0e Shel \u76f8\u5173 \u7684 \u529f\u80fd \uff0c \u5982 \u62d6\u653e \u3001 \u526a\u8d34 \u8d34\u677f \u526a\u8d34\u677f \u64cd\u4f5c \u3001 \u6587\u4ef6 \u5173\u8054 \u7b49 \u3002 ole32 . lib \u4e00\u822c \u662f \u9700\u8981 \u751f\u6210 \u4e00\u4e2a \u552f\u4e00 \u7684 uuid \u65f6 \u7528\u5230 libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib python \u8c03\u7528 c++ \u7684 \u63a5\u53e3 libboost _ filesystem - vc142 - mt - x64 - 1 _ 80 . lib boost \u7684 \u6587\u4ef6 \u7cfb\u7edf \u6587\u4ef6\u7cfb\u7edf \u5e93 rpc . lib \u8fdc\u7a0b \u8fc7\u7a0b \u8c03\u7528 \u5e93 \uff0c \u63d0\u4f9b \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5b9e\u73b0 \u3002 carla _ client . lib LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u73b0 libpng . lib \u56fe\u7247 \u5904\u7406 \u5e93 zlib . lib \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u5e93 Recast . lib \u8981 \u529f\u80fd \u662f \u5c06 \u573a\u666f \u7f51\u683c \u6a21\u578b \u751f\u6210 \u7528\u4e8e \u5bfb\u8def \u7684 \u7f51\u683c \u6a21\u578b \uff08 Navigation Mesh \uff0c \u4fd7\u79f0 \u884c\u8d70 \u9762 \uff0c \u6807\u8bb0 \u54ea\u4e9b \u5730\u65b9 \u54ea\u4e9b\u5730\u65b9 \u53ef \u884c\u8d70 \u7684 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7f51\u683c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff09 \u3002 Detour . lib \u4e3b\u8981 \u529f\u80fd \u662f \u5229\u7528 \u4e0a \u4e00\u6b65 \u6240 \u751f\u6210 \u7684 Navigation Mesh \u8fdb\u884c \u5bfb\u8def \u3002 DetourCrowd . lib \u63d0\u4f9b \u4e86 \u7fa4\u4f53 \u5bfb\u8def \u884c\u4e3a \u7684 \u529f\u80fd \u3002 xerces - c _ 3 . lib XML \u6587\u6863 \u89e3\u6790 \u5f00\u6e90 \u9879\u76ee \u3002 sqlite3 . lib \u5d4c\u5165 \u5d4c\u5165\u5f0f \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u3002 proj . lib \u901a\u7528 \u5750\u6807 \u8f6c\u6362 \u5e93 \u3002 osm2odr . lib OpenStreetMap \u8f6c OpenDrive \u5e93 \u3002","title":"tuto D python api"},{"location":"tuto_D_python_api/#setuppy","text":"\u5916\u90e8 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u542b\u4e49 shlwapi . lib \u5305\u542b \u4e86 \u5927\u91cf \u7684 Windows \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5904\u7406 \u65b9\u6cd5 Advapi32 . lib \u5305\u542b \u7684 \u51fd\u6570 \u4e0e \u5bf9\u8c61 \u7684 \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6ce8\u518c \u6ce8\u518c\u8868 \u7684 \u64cd\u63a7 \u4ee5\u53ca \u4e8b\u4ef6 \u65e5\u5fd7 \u6709\u5173 ole32 . lib \u4e00\u822c \u662f \u9700\u8981 \u751f\u6210 \u4e00\u4e2a \u552f\u4e00 \u7684 uuid \u65f6 \u7528\u5230 shell32 . lib \u5305\u542b \u4e86 \u4e00\u4e9b \u4e0e Shel \u76f8\u5173 \u7684 \u51fd\u6570 \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5b9a\u4e49 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u53ef\u4ee5 \u7528\u4e8e \u521b\u5efa \u548c \u7ba1\u7406 windows \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3001 \u6587\u4ef6 \u3001 \u5feb\u6377 \u65b9\u5f0f \u5feb\u6377\u65b9\u5f0f \u7b49 \u5bf9\u8c61 \uff0c \u4ee5\u53ca \u5b9e\u73b0 \u4e00\u4e9b \u4e0e Shel \u76f8\u5173 \u7684 \u529f\u80fd \uff0c \u5982 \u62d6\u653e \u3001 \u526a\u8d34 \u8d34\u677f \u526a\u8d34\u677f \u64cd\u4f5c \u3001 \u6587\u4ef6 \u5173\u8054 \u7b49 \u3002 ole32 . lib \u4e00\u822c \u662f \u9700\u8981 \u751f\u6210 \u4e00\u4e2a \u552f\u4e00 \u7684 uuid \u65f6 \u7528\u5230 libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib python \u8c03\u7528 c++ \u7684 \u63a5\u53e3 libboost _ filesystem - vc142 - mt - x64 - 1 _ 80 . lib boost \u7684 \u6587\u4ef6 \u7cfb\u7edf \u6587\u4ef6\u7cfb\u7edf \u5e93 rpc . lib \u8fdc\u7a0b \u8fc7\u7a0b \u8c03\u7528 \u5e93 \uff0c \u63d0\u4f9b \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5b9e\u73b0 \u3002 carla _ client . lib LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u73b0 libpng . lib \u56fe\u7247 \u5904\u7406 \u5e93 zlib . lib \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u5e93 Recast . lib \u8981 \u529f\u80fd \u662f \u5c06 \u573a\u666f \u7f51\u683c \u6a21\u578b \u751f\u6210 \u7528\u4e8e \u5bfb\u8def \u7684 \u7f51\u683c \u6a21\u578b \uff08 Navigation Mesh \uff0c \u4fd7\u79f0 \u884c\u8d70 \u9762 \uff0c \u6807\u8bb0 \u54ea\u4e9b \u5730\u65b9 \u54ea\u4e9b\u5730\u65b9 \u53ef \u884c\u8d70 \u7684 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7f51\u683c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff09 \u3002 Detour . lib \u4e3b\u8981 \u529f\u80fd \u662f \u5229\u7528 \u4e0a \u4e00\u6b65 \u6240 \u751f\u6210 \u7684 Navigation Mesh \u8fdb\u884c \u5bfb\u8def \u3002 DetourCrowd . lib \u63d0\u4f9b \u4e86 \u7fa4\u4f53 \u5bfb\u8def \u884c\u4e3a \u7684 \u529f\u80fd \u3002 xerces - c _ 3 . lib XML \u6587\u6863 \u89e3\u6790 \u5f00\u6e90 \u9879\u76ee \u3002 sqlite3 . lib \u5d4c\u5165 \u5d4c\u5165\u5f0f \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u3002 proj . lib \u901a\u7528 \u5750\u6807 \u8f6c\u6362 \u5e93 \u3002 osm2odr . lib OpenStreetMap \u8f6c OpenDrive \u5e93 \u3002","title":"\u89e3\u8bfb setup . py"},{"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 \u8c03\u8bd5 LibCarla Python \u6269\u5c55 \u6a21\u5757 \u8c03\u8bd5 PythonAPI \u6784\u5efa \u8c03\u8bd5 \u7248\u672c C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u8bd5 \u5176\u4ed6 \u68c0\u67e5 \u6240 \u4f9d\u8d56 dll \u5e93 \u7684 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d VS2019 \u6253\u5f00 CarlaUE4 \u7684 Cmake \u5de5\u7a0b \u5bfc\u5165 \u5d29\u6e83 \u95ee\u9898 VS \u8c03\u8bd5 UE \u9879\u76ee \u95ee\u9898 \u6280\u5de7 \u5b66\u4e60 \u7a0b\u5e8f \u8c03\u7528 \u6d41\u7a0b \uff1a Python \u3001 libcarla . cp37 - win _ amd64 . pyd \u3001 LibCarla \u3001 CarlaUE4 \u3002 \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 \u5982\u679c \u62a5\u9519 \uff1a \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 \uff08 The global shader cache file ' D : / work / workspace / engine / Engine / GlobalshaderCache - PCD3D _ M5 . bin ' is missing . \uff09 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 \u5728 BuildLibCarla . bat \u4e2d \uff0c \u5c06 -- config \u53c2\u6570 \u4ece Release \u4fee\u6539 \u4e3a Debug \u3002 \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 \u6216\u8005 \u53f3\u952e carla _ client _ debug \u9879\u76ee \u8fdb\u884c \u751f\u6210 \u3002 \u6ce8\u610f \u53f3\u952e carla _ client _ debug \uff0c \u9009\u62e9 \u8c03\u8bd5 - > \u542f\u52a8 \u65b0 \u5b9e\u4f8b \u3002 \u4e14 \u9700\u8981 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u4e2d \u65b0\u5efa Python \u9879\u76ee \u7528\u4e8e \u6d4b\u8bd5 \u3002 \u53c2\u8003 vs \u8c03\u8bd5 C++ \u3002 \u8c03\u8bd5 carla _ client \u65f6 \uff0c vs \u62a5\u9519 \uff1a boost : : python : : error _ already _ set \uff0c \u5c1d\u8bd5 \u6355\u83b7 \u5177\u4f53 \u5f02\u5e38 \u3002 Python \u6269\u5c55 \u6a21\u5757 LibCarla \u7f16\u8bd1 \u540e \u751f\u6210 Python37 / Lib / site - packages / carla / libcarla . cp37 - win _ amd64 . pyd \u7ed9 Python \u8fdb\u884c \u8c03\u7528 \u3002 \u4e3a\u4e86 \u63d0\u9ad8 \u8fd0\u884c \u901f\u5ea6 \uff0c \u5c06 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e2d \u7684 __ init __. py \u548c command . py \u7f16\u8bd1 \u4e3a __ pycache __ \u76ee\u5f55 \u4e2d \u7684 byte code ( \u5b57\u8282 \u7801 ) \u3002 \u8c03\u8bd5 PythonAPI 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 \u5217\u51fa \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \uff1a python setup . py -- help - commands \u6784\u5efa \u547d\u4ee4 \uff1a python setup . py build \u6784\u5efa \u8c03\u8bd5 \u7248\u672c \u53f3\u952e CARLA \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u6dfb\u52a0 - > \u65b0\u5efa \u9879\u76ee - > Python \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff1b \u5c06 manual _ control . py \u6587\u4ef6 \u5185\u5bb9 \u590d\u5236 \u590d\u5236\u5230 \u65b0\u5efa \u5de5\u7a0b \u7684 PythonApplication . py \u6587\u4ef6 \u4e2d \uff1b \u5728 . py \u6587\u4ef6 \u7684 \u5f00\u59cb \u5904 \u589e\u52a0 input ( ) \u4ee3\u7801 \uff1b \u53f3\u952e . py \u6587\u4ef6 \uff0c \u70b9\u51fb \u5f00\u59cb \u6267\u884c \uff08 \u8c03\u8bd5 \uff09 \uff0c \u4f1a\u5f39 \u51fa \u547d\u4ee4 \u547d\u4ee4\u884c \u754c\u9762 \uff1b \u53f3\u952e carla _ client _ debug \u9879\u76ee - > \u8c03\u8bd5 - > \u542f\u52a8 \u65b0 \u5b9e\u4f8b \uff1b \u5728 \u7b2c 4 \u6b65\u5f39 \u51fa \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u754c\u9762 \u4e2d \u6572 \u56de\u8f66 \uff1b \u53c2\u8003 \u94fe\u63a5 \uff0c \u6548\u679c \u672a\u77e5 \u3002 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u8bd5 \u9519\u8bef LNK2038 \u68c0\u6d4b \u5230 \u201c _ ITERATOR _ DEBUG _ LEVEL \u201d \u7684 \u4e0d \u5339\u914d \u9879 : \u503c \u201c 0 \u201d \u4e0d \u5339\u914d \u503c \u201c 2 \u201d \u9519\u8bef LNK2038 \u68c0\u6d4b \u5230 \u201c RuntimeLibrary \u201d \u7684 \u4e0d \u5339\u914d \u9879 : \u503c \u201c MD _ DynamicRelease \u201d \u4e0d \u5339\u914d \u503c \u201c MDd _ DynamicDebug \u201d \u5f53\u524d \u5de5\u7a0b \u662f Debug \u7248\u672c \uff08 0 \uff09 \uff0c \u800c \u5f15\u7528 \u7684 \u5e93 \u6587\u4ef6 \u65f6 Release \u7248\u672c \uff08 2 \uff09 \u3002 \u9700\u8981 \u5c06 \u5176\u4ed6 \u7684 . lib \u6587\u4ef6 \u7f16\u8bd1 \u4e3a debug \u6a21\u5f0f \uff1a 1 . \u5207\u6362 \u5230 \u76ee\u5f55 Util \\ InstallersWin \uff0c \u5c06 install _ boost . bat \u5185 \u7684 b2 \u8fd0\u884c \u53c2\u6570 \u6539\u4e3a variant = debug \uff0c \uff08 \u6839\u636e Setup . bat \uff09 \u8fd0\u884c install _ boost . bat \uff1a install _ boost . bat -- build - dir D : \\ work \\ buffer -- toolset msvc - 14.2 -- version 1.80 . 0 - j 4 \u4f1a \u81ea\u52a8 \u5c06 boost \u7684 \u5e93 \u548c \u6587\u4ef6 \u5934\u6587\u4ef6 \u5b89\u88c5 \u5230 \u76ee\u5f55 D : \\ work \\ buffer \\ boost - 1.80 . 0 - install \u91cc\u9762 \u3002 \u5c06 install _ recast . bat \u4e2d \u7684 Relase \u6539\u4e3a Debug \u3002 \u5c06 - DCMAKE _ CXX _ FLAGS _ RELASE = \" / MD / MP \" \u6539\u4e3a \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u8c03\u8bd5 DLL - DCMAKE _ CXX _ FLAGS _ DEBUG = \" / MDd / MP \" \uff0c \u8fd0\u884c install _ recast . bat \u3002 install _ recast . bat -- build - dir D : \\ work \\ buffer -- generator \" Visual Studio 16 2019 \" \u5c06 install _ rpclib . bat \u4e2d \u7684 Relase \u6539\u4e3a Debug \uff0c \u8fd0\u884c install _ rpclib . bat \u3002 \u5c06 - DCMAKE _ CXX _ FLAGS _ RELASE = \" / MD / MP \" \u6539\u4e3a \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u8c03\u8bd5 DLL - DCMAKE _ CXX _ FLAGS _ DEBUG = \" / MDd / MP \" \u3002 install _ rpclib . bat -- build - dir D : \\ work \\ buffer -- generator \" Visual Studio 16 2019 \" 2 . \u5c06 \u7b2c 1 \u6b65 \u751f\u6210 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 \u914d\u7f6e \u5230 Examples \\ CppClient \\ CMakeLists . txt \u4e2d \uff0c \u5bf9\u5e94 \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c \u5e93 \u6587\u4ef6 \u90fd \u6539\u4e3a Debug \u7248\u672c \uff1b 3 . \u5728 main . cpp \u4e2d \u589e\u52a0 \u65ad\u70b9 \uff0c \u5e76 \u5f00\u59cb \u8c03\u8bd5 \uff1b auto world = client . LoadWorld ( \" town _ name \" ) ; \u6539\u4e3a \uff1a auto world = client . LoadWorld ( \" Town10HD _ Opt \" ) ; 4 . \u7a0b\u5e8f \u5728 \u65ad\u70b9 \u505c\u6b62 \u540e \u6309 F10 \u8fd0\u884c \u4e0b \u4e00\u6b65 \uff0c \u6309 F11 \u8fdb\u5165 LibCarla \u4e2d \u7684 \u51fd\u6570 \u5b9e\u73b0 \u3002 \u5176\u4ed6 \u68c0\u67e5 \u6240 \u4f9d\u8d56 dll \u5e93 \u7684 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d \u4e0b \u65ad\u70b9 \uff0c F5 \u8c03\u8bd5 \u3002 \u7136\u540e \u201c \u8c03\u8bd5 - \u7a97\u53e3 - \u6a21\u5757 \u201d \u6253\u5f00 \u6a21\u5757 \u7a97\u53e3 \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 \u6d4b\u8bd5 \u94fe\u63a5 \uff1a \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.8553 , 28.1931 , 112.9396 , 28.2504 \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 \u5728 VS \u4e2d \u70b9\u51fb \u8c03\u8bd5 \u6216 \u8fd0\u884c \u65f6\u62a5 \u9519 \uff1a \u9519\u8bef 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 \u548c \u9519\u8bef C1012 \u62ec\u53f7 \u4e0d \u5339\u914d : \u7f3a\u5c11 \u201c ) \u201d \u89e3\u51b3 \uff1a \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 make launch ARGS = ' -- chrono ' \u8fdb\u884c \u91cd\u65b0 \u7f16\u8bd1 \u540e \uff0c \u7136\u540e \u518d\u7528 VS \u542f\u52a8 \u8c03\u8bd5 \u3002 \u6267\u884c \u201c make launch \u201d \u65f6 \u51fa\u9519 \uff0c ' Renderer / Public / GBufferView . h ' \u8868\u73b0 \u4e3a \u6253\u5f00 CarlaUE4 . sln \u540e \u6ca1\u6709 UnrealBuildTool \u9009\u9879 \u3002 \u56e0\u4e3a \u672a \u5728 STOCK UNREAL ENGINE \u4e2d \u627e\u5230 \u5b83 \u3002 \u5b83 \u662f \u6dfb\u52a0 \u5230 CARLA \u5206\u652f \u4e2d \u7684 \u5185\u5bb9 \u3002 \u5982\u679c \u60a8 \u5728 \u4e24\u4e2a \u7248\u672c \u7684 Unreal \u548c Carla \u4e4b\u95f4 \u6267\u884c git diff \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ea\u6709 \u5c11\u91cf \u66f4\u6539 \uff0c \u5e76\u4e14 \u6dfb\u52a0 \u4e86 GBuffer \u89c6\u56fe \u3002 \u89e3\u51b3 \uff1a \u53f3\u952e \u6587\u4ef6 CarlaUE4 . uproject \uff0c \u9009\u62e9 Switch Unreal Engine version \uff0c \u5e76 \u9009\u62e9 \u9700\u8981 \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u7248\u672c \uff08 \u5982\u679c \u6ca1\u6709 \u751f\u6210 \u65b0 \u7684 CarlaUE4 . sln \uff0c \u5219 \u9700\u8981 \u5148 \u5220\u9664 \u518d \u91cd\u65b0 \u751f\u6210 CarlaUE4 . sln \uff09 \u3002 \u8fd8\u6709 \u53ef\u80fd \u62a5\u9519 \uff1a \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 \u9700\u8981 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d\u5148 \u8fd0\u884c make launch \u6216\u8005 make launch ARGS = \" -- chrono \" \u7136\u540e \u518d \u5728 vs \u4e2d \u8fd0\u884c \u3002 \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 \u68c0\u67e5 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d \u542f\u52a8 \u8c03\u5f0f \u5e76 \u5728 \u65ad\u70b9 \u505c\u4e0b \uff0c \u7136\u540e \u201c \u8c03\u8bd5 - \u7a97\u53e3 - \u6a21\u5757 \u201d \u6253\u5f00 \u6a21\u5757 \u7a97\u53e3 \u3002 \u627e\u5230 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 dll \u7684 \u540d\u5b57 \uff0c \u770b \u201c \u7b26\u53f7 \u6587\u4ef6 \u201d \u4e00\u680f \u662f \u7a7a \u7684 \u3002 \u8bf4\u660e \u8fd9\u4e2a dll \u7684 \u7b26\u53f7 \u6587\u4ef6 \u6ca1\u6709 \u52a0\u8f7d \u3002 \u628a . pdb \u548c . dll \u653e\u5728 \u4e00\u8d77 \u3002 \u518d\u6b21 \u8c03\u8bd5 \u3002 \u53ef\u4ee5 \u770b\u5230 \u7b26\u53f7 \u6587\u4ef6 \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u3002 \u6539\u53d8 ubuntu \u7ec8\u7aef \u663e\u793a \u8bed\u8a00 \uff08 \u684c\u9762 \u7cfb\u7edf \u4e2d\u6587 \uff0c \u7ec8\u7aef \u63d0\u793a \u82f1\u6587 \uff09 vim ~ / . bashrc export LANGUAGE = en _ US export LANG = en _ US . UTF - 8 source ~ / . bashrc \u65e5\u5fd7 \u8bb0\u5f55 UE _ LOG \u51fd\u6570 \u8bb0\u5f55 \u7684 \u65e5\u5fd7 \u4f4d\u4e8e carla \\ Unreal \\ CarlaUE4 \\ Saved \\ Logs \\ CarlaUE4 . log \u6587\u4ef6 \u4e2d \u3002 \u5de5\u5177 VScode \u8c03\u8bd5 shell bash \u811a\u672c \u5728 VScode \u4e2d \u5b89\u88c5 Bash Debug \uff0c \u5b66\u4e60 bat \u811a\u672c LibCarla \u8bf4\u660e CarlaUE4 \u8bf4\u660e","title":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \u7684 \u8c03\u8bd5"},{"location":"tuto_D_windows_debug/#windows-carla","text":"\u865a\u5e7b \u5f15\u64ce Carla \u63d2\u4ef6 \u7684 \u8c03\u8bd5 \u8c03\u8bd5 LibCarla Python \u6269\u5c55 \u6a21\u5757 \u8c03\u8bd5 PythonAPI \u6784\u5efa \u8c03\u8bd5 \u7248\u672c C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u8bd5 \u5176\u4ed6 \u68c0\u67e5 \u6240 \u4f9d\u8d56 dll \u5e93 \u7684 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d VS2019 \u6253\u5f00 CarlaUE4 \u7684 Cmake \u5de5\u7a0b \u5bfc\u5165 \u5d29\u6e83 \u95ee\u9898 VS \u8c03\u8bd5 UE \u9879\u76ee \u95ee\u9898 \u6280\u5de7 \u5b66\u4e60 \u7a0b\u5e8f \u8c03\u7528 \u6d41\u7a0b \uff1a Python \u3001 libcarla . cp37 - win _ amd64 . pyd \u3001 LibCarla \u3001 CarlaUE4 \u3002","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 \u5982\u679c \u62a5\u9519 \uff1a \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 \uff08 The global shader cache file ' D : / work / workspace / engine / Engine / GlobalshaderCache - PCD3D _ M5 . bin ' is missing . \uff09 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 \u5728 BuildLibCarla . bat \u4e2d \uff0c \u5c06 -- config \u53c2\u6570 \u4ece Release \u4fee\u6539 \u4e3a Debug \u3002 \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 \u6216\u8005 \u53f3\u952e carla _ client _ debug \u9879\u76ee \u8fdb\u884c \u751f\u6210 \u3002 \u6ce8\u610f \u53f3\u952e carla _ client _ debug \uff0c \u9009\u62e9 \u8c03\u8bd5 - > \u542f\u52a8 \u65b0 \u5b9e\u4f8b \u3002 \u4e14 \u9700\u8981 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u4e2d \u65b0\u5efa Python \u9879\u76ee \u7528\u4e8e \u6d4b\u8bd5 \u3002 \u53c2\u8003 vs \u8c03\u8bd5 C++ \u3002 \u8c03\u8bd5 carla _ client \u65f6 \uff0c vs \u62a5\u9519 \uff1a boost : : python : : error _ already _ set \uff0c \u5c1d\u8bd5 \u6355\u83b7 \u5177\u4f53 \u5f02\u5e38 \u3002","title":"\u8c03\u8bd5 LibCarla "},{"location":"tuto_D_windows_debug/#python","text":"LibCarla \u7f16\u8bd1 \u540e \u751f\u6210 Python37 / Lib / site - packages / carla / libcarla . cp37 - win _ amd64 . pyd \u7ed9 Python \u8fdb\u884c \u8c03\u7528 \u3002 \u4e3a\u4e86 \u63d0\u9ad8 \u8fd0\u884c \u901f\u5ea6 \uff0c \u5c06 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e2d \u7684 __ init __. py \u548c command . py \u7f16\u8bd1 \u4e3a __ pycache __ \u76ee\u5f55 \u4e2d \u7684 byte code ( \u5b57\u8282 \u7801 ) \u3002","title":"Python \u6269\u5c55 \u6a21\u5757 "},{"location":"tuto_D_windows_debug/#pythonapi","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 \u5217\u51fa \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \uff1a python setup . py -- help - commands \u6784\u5efa \u547d\u4ee4 \uff1a python setup . py build","title":"\u8c03\u8bd5 PythonAPI "},{"location":"tuto_D_windows_debug/#_1","text":"\u53f3\u952e CARLA \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u6dfb\u52a0 - > \u65b0\u5efa \u9879\u76ee - > Python \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff1b \u5c06 manual _ control . py \u6587\u4ef6 \u5185\u5bb9 \u590d\u5236 \u590d\u5236\u5230 \u65b0\u5efa \u5de5\u7a0b \u7684 PythonApplication . py \u6587\u4ef6 \u4e2d \uff1b \u5728 . py \u6587\u4ef6 \u7684 \u5f00\u59cb \u5904 \u589e\u52a0 input ( ) \u4ee3\u7801 \uff1b \u53f3\u952e . py \u6587\u4ef6 \uff0c \u70b9\u51fb \u5f00\u59cb \u6267\u884c \uff08 \u8c03\u8bd5 \uff09 \uff0c \u4f1a\u5f39 \u51fa \u547d\u4ee4 \u547d\u4ee4\u884c \u754c\u9762 \uff1b \u53f3\u952e carla _ client _ debug \u9879\u76ee - > \u8c03\u8bd5 - > \u542f\u52a8 \u65b0 \u5b9e\u4f8b \uff1b \u5728 \u7b2c 4 \u6b65\u5f39 \u51fa \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u754c\u9762 \u4e2d \u6572 \u56de\u8f66 \uff1b \u53c2\u8003 \u94fe\u63a5 \uff0c \u6548\u679c \u672a\u77e5 \u3002","title":"\u6784\u5efa \u8c03\u8bd5 \u7248\u672c "},{"location":"tuto_D_windows_debug/#c","text":"\u9519\u8bef LNK2038 \u68c0\u6d4b \u5230 \u201c _ ITERATOR _ DEBUG _ LEVEL \u201d \u7684 \u4e0d \u5339\u914d \u9879 : \u503c \u201c 0 \u201d \u4e0d \u5339\u914d \u503c \u201c 2 \u201d \u9519\u8bef LNK2038 \u68c0\u6d4b \u5230 \u201c RuntimeLibrary \u201d \u7684 \u4e0d \u5339\u914d \u9879 : \u503c \u201c MD _ DynamicRelease \u201d \u4e0d \u5339\u914d \u503c \u201c MDd _ DynamicDebug \u201d \u5f53\u524d \u5de5\u7a0b \u662f Debug \u7248\u672c \uff08 0 \uff09 \uff0c \u800c \u5f15\u7528 \u7684 \u5e93 \u6587\u4ef6 \u65f6 Release \u7248\u672c \uff08 2 \uff09 \u3002 \u9700\u8981 \u5c06 \u5176\u4ed6 \u7684 . lib \u6587\u4ef6 \u7f16\u8bd1 \u4e3a debug \u6a21\u5f0f \uff1a 1 . \u5207\u6362 \u5230 \u76ee\u5f55 Util \\ InstallersWin \uff0c \u5c06 install _ boost . bat \u5185 \u7684 b2 \u8fd0\u884c \u53c2\u6570 \u6539\u4e3a variant = debug \uff0c \uff08 \u6839\u636e Setup . bat \uff09 \u8fd0\u884c install _ boost . bat \uff1a install _ boost . bat -- build - dir D : \\ work \\ buffer -- toolset msvc - 14.2 -- version 1.80 . 0 - j 4 \u4f1a \u81ea\u52a8 \u5c06 boost \u7684 \u5e93 \u548c \u6587\u4ef6 \u5934\u6587\u4ef6 \u5b89\u88c5 \u5230 \u76ee\u5f55 D : \\ work \\ buffer \\ boost - 1.80 . 0 - install \u91cc\u9762 \u3002 \u5c06 install _ recast . bat \u4e2d \u7684 Relase \u6539\u4e3a Debug \u3002 \u5c06 - DCMAKE _ CXX _ FLAGS _ RELASE = \" / MD / MP \" \u6539\u4e3a \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u8c03\u8bd5 DLL - DCMAKE _ CXX _ FLAGS _ DEBUG = \" / MDd / MP \" \uff0c \u8fd0\u884c install _ recast . bat \u3002 install _ recast . bat -- build - dir D : \\ work \\ buffer -- generator \" Visual Studio 16 2019 \" \u5c06 install _ rpclib . bat \u4e2d \u7684 Relase \u6539\u4e3a Debug \uff0c \u8fd0\u884c install _ rpclib . bat \u3002 \u5c06 - DCMAKE _ CXX _ FLAGS _ RELASE = \" / MD / MP \" \u6539\u4e3a \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u8c03\u8bd5 DLL - DCMAKE _ CXX _ FLAGS _ DEBUG = \" / MDd / MP \" \u3002 install _ rpclib . bat -- build - dir D : \\ work \\ buffer -- generator \" Visual Studio 16 2019 \" 2 . \u5c06 \u7b2c 1 \u6b65 \u751f\u6210 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 \u914d\u7f6e \u5230 Examples \\ CppClient \\ CMakeLists . txt \u4e2d \uff0c \u5bf9\u5e94 \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c \u5e93 \u6587\u4ef6 \u90fd \u6539\u4e3a Debug \u7248\u672c \uff1b 3 . \u5728 main . cpp \u4e2d \u589e\u52a0 \u65ad\u70b9 \uff0c \u5e76 \u5f00\u59cb \u8c03\u8bd5 \uff1b auto world = client . LoadWorld ( \" town _ name \" ) ; \u6539\u4e3a \uff1a auto world = client . LoadWorld ( \" Town10HD _ Opt \" ) ; 4 . \u7a0b\u5e8f \u5728 \u65ad\u70b9 \u505c\u6b62 \u540e \u6309 F10 \u8fd0\u884c \u4e0b \u4e00\u6b65 \uff0c \u6309 F11 \u8fdb\u5165 LibCarla \u4e2d \u7684 \u51fd\u6570 \u5b9e\u73b0 \u3002","title":"C++ \u5ba2\u6237\u7aef \u8c03\u8bd5 "},{"location":"tuto_D_windows_debug/#_2","text":"","title":"\u5176\u4ed6 "},{"location":"tuto_D_windows_debug/#dll","text":"\u4e0b \u65ad\u70b9 \uff0c F5 \u8c03\u8bd5 \u3002 \u7136\u540e \u201c \u8c03\u8bd5 - \u7a97\u53e3 - \u6a21\u5757 \u201d \u6253\u5f00 \u6a21\u5757 \u7a97\u53e3 \u3002","title":"\u68c0\u67e5 \u6240 \u4f9d\u8d56 dll \u5e93 \u7684 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d "},{"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/#_3","text":"\u4f8b\u5982 \uff0c \u5bfc\u5165 \u6d4b\u8bd5 \u94fe\u63a5 \uff1a \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.8553 , 28.1931 , 112.9396 , 28.2504 \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/#_4","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 \u5728 VS \u4e2d \u70b9\u51fb \u8c03\u8bd5 \u6216 \u8fd0\u884c \u65f6\u62a5 \u9519 \uff1a \u9519\u8bef 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 \u548c \u9519\u8bef C1012 \u62ec\u53f7 \u4e0d \u5339\u914d : \u7f3a\u5c11 \u201c ) \u201d \u89e3\u51b3 \uff1a \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 make launch ARGS = ' -- chrono ' \u8fdb\u884c \u91cd\u65b0 \u7f16\u8bd1 \u540e \uff0c \u7136\u540e \u518d\u7528 VS \u542f\u52a8 \u8c03\u8bd5 \u3002 \u6267\u884c \u201c make launch \u201d \u65f6 \u51fa\u9519 \uff0c ' Renderer / Public / GBufferView . h ' \u8868\u73b0 \u4e3a \u6253\u5f00 CarlaUE4 . sln \u540e \u6ca1\u6709 UnrealBuildTool \u9009\u9879 \u3002 \u56e0\u4e3a \u672a \u5728 STOCK UNREAL ENGINE \u4e2d \u627e\u5230 \u5b83 \u3002 \u5b83 \u662f \u6dfb\u52a0 \u5230 CARLA \u5206\u652f \u4e2d \u7684 \u5185\u5bb9 \u3002 \u5982\u679c \u60a8 \u5728 \u4e24\u4e2a \u7248\u672c \u7684 Unreal \u548c Carla \u4e4b\u95f4 \u6267\u884c git diff \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ea\u6709 \u5c11\u91cf \u66f4\u6539 \uff0c \u5e76\u4e14 \u6dfb\u52a0 \u4e86 GBuffer \u89c6\u56fe \u3002 \u89e3\u51b3 \uff1a \u53f3\u952e \u6587\u4ef6 CarlaUE4 . uproject \uff0c \u9009\u62e9 Switch Unreal Engine version \uff0c \u5e76 \u9009\u62e9 \u9700\u8981 \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u7248\u672c \uff08 \u5982\u679c \u6ca1\u6709 \u751f\u6210 \u65b0 \u7684 CarlaUE4 . sln \uff0c \u5219 \u9700\u8981 \u5148 \u5220\u9664 \u518d \u91cd\u65b0 \u751f\u6210 CarlaUE4 . sln \uff09 \u3002 \u8fd8\u6709 \u53ef\u80fd \u62a5\u9519 \uff1a \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 \u9700\u8981 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d\u5148 \u8fd0\u884c make launch \u6216\u8005 make launch ARGS = \" -- chrono \" \u7136\u540e \u518d \u5728 vs \u4e2d \u8fd0\u884c \u3002","title":"\u95ee\u9898 "},{"location":"tuto_D_windows_debug/#_5","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/#_6","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/#_7","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 \u68c0\u67e5 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d \u542f\u52a8 \u8c03\u5f0f \u5e76 \u5728 \u65ad\u70b9 \u505c\u4e0b \uff0c \u7136\u540e \u201c \u8c03\u8bd5 - \u7a97\u53e3 - \u6a21\u5757 \u201d \u6253\u5f00 \u6a21\u5757 \u7a97\u53e3 \u3002 \u627e\u5230 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 dll \u7684 \u540d\u5b57 \uff0c \u770b \u201c \u7b26\u53f7 \u6587\u4ef6 \u201d \u4e00\u680f \u662f \u7a7a \u7684 \u3002 \u8bf4\u660e \u8fd9\u4e2a dll \u7684 \u7b26\u53f7 \u6587\u4ef6 \u6ca1\u6709 \u52a0\u8f7d \u3002 \u628a . pdb \u548c . dll \u653e\u5728 \u4e00\u8d77 \u3002 \u518d\u6b21 \u8c03\u8bd5 \u3002 \u53ef\u4ee5 \u770b\u5230 \u7b26\u53f7 \u6587\u4ef6 \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u3002 \u6539\u53d8 ubuntu \u7ec8\u7aef \u663e\u793a \u8bed\u8a00 \uff08 \u684c\u9762 \u7cfb\u7edf \u4e2d\u6587 \uff0c \u7ec8\u7aef \u63d0\u793a \u82f1\u6587 \uff09 vim ~ / . bashrc export LANGUAGE = en _ US export LANG = en _ US . UTF - 8 source ~ / . bashrc \u65e5\u5fd7 \u8bb0\u5f55 UE _ LOG \u51fd\u6570 \u8bb0\u5f55 \u7684 \u65e5\u5fd7 \u4f4d\u4e8e carla \\ Unreal \\ CarlaUE4 \\ Saved \\ Logs \\ CarlaUE4 . log \u6587\u4ef6 \u4e2d \u3002","title":"\u6280\u5de7 "},{"location":"tuto_D_windows_debug/#_8","text":"VScode \u8c03\u8bd5 shell bash \u811a\u672c \u5728 VScode \u4e2d \u5b89\u88c5 Bash Debug \uff0c","title":"\u5de5\u5177"},{"location":"tuto_D_windows_debug/#_9","text":"bat \u811a\u672c LibCarla \u8bf4\u660e CarlaUE4 \u8bf4\u660e","title":"\u5b66\u4e60 "},{"location":"tuto_E_gallery/","text":"\u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b 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 \u8def\u5f84 \u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"tuto E gallery"},{"location":"tuto_E_gallery/#_1","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b","title":"\u57fa\u672c \u793a\u4f8b"},{"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 \u8def\u5f84 \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 \u3002 \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 \u3002 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u9a71\u52a8 \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 \u670d\u52a1 \u670d\u52a1\u7aef \uff1a \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u3002 \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":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u7684 \u529b\u53cd\u9988"},{"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 \u3002 \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 \u3002 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u9a71\u52a8 \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 \u670d\u52a1 \u670d\u52a1\u7aef \uff1a \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u3002 \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 ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u53d6 \u4e8b\u4ef6 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 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":"\u5982\u4f55 \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 ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u53d6 \u4e8b\u4ef6 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 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 ( ) # \u751f\u6210 \u8f66\u8f86 vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # \u751f\u6210 \u76f8\u673a 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 ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u83b7\u53d6 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u548c \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e 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 ) : # \u8ba1\u7b97 \u4e09\u7ef4 \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u8bbe\u7f6e \u8f93\u5165 \u5750\u6807 \u7684 \u683c\u5f0f \uff08 loc \u662f \u4e00\u4e2a carla . Position \u5bf9\u8c61 \uff09 point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u53d8\u6362 \u5230 \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( w2c , point ) # \u65b0 \u7684 \uff0c \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c standard \u201d # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u53bb\u6389 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u6210\u5206 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u76f8\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 ] \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 # \u83b7\u53d6 \u4e16\u754c \u7684 \u76f8\u673a \u77e9\u9635 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 ( ) # \u751f\u6210 \u8f66\u8f86 vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # \u751f\u6210 \u76f8\u673a 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 ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u83b7\u53d6 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u548c \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e 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 ) : # \u8ba1\u7b97 \u4e09\u7ef4 \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u8bbe\u7f6e \u8f93\u5165 \u5750\u6807 \u7684 \u683c\u5f0f \uff08 loc \u662f \u4e00\u4e2a carla . Position \u5bf9\u8c61 \uff09 point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u53d8\u6362 \u5230 \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( w2c , point ) # \u65b0 \u7684 \uff0c \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c standard \u201d # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u53bb\u6389 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u6210\u5206 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u76f8\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 ] \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 # \u83b7\u53d6 \u4e16\u754c \u7684 \u76f8\u673a \u77e9\u9635 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 \u8fd0\u884c make launch \u3001 make package \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 \uff08 \u6216 \u53c2\u8003 \u4e2d\u6587 \u6587\u6863 \uff09 \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 \u8fd0\u884c make launch \u3001 make package \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 \uff08 \u6216 \u53c2\u8003 \u4e2d\u6587 \u6587\u6863 \uff09 \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 \u4e16\u754c \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 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 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027"},{"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 \u4e16\u754c \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 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 \u7b14\u8bb0 \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 \uff1a \u6838\u5fc3 \u6982\u5ff5 \u3002 \u8fdb\u884c \u884c\u4eba \u5efa\u6a21 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 \u9aa8\u9abc \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u56fe \u53c2\u8003 \u94fe\u63a5 \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 \u884c\u4eba \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b \u3002 \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 \u884c\u4eba \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":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236"},{"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 \u7b14\u8bb0 \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 \uff1a \u6838\u5fc3 \u6982\u5ff5 \u3002 \u8fdb\u884c \u884c\u4eba \u5efa\u6a21 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 \u9aa8\u9abc \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u56fe \u53c2\u8003 \u94fe\u63a5 \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 \u884c\u4eba \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b \u3002","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 \u884c\u4eba \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 # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u5c06 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f 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 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # \u5728 \u5730\u56fe \u4e0a \u67d0\u4e9b \u4f4d\u7f6e \u8bbe\u7f6e \u76f8\u673a 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 ) # \u83b7\u53d6 \u8bed\u4e49 \u76f8\u673a \u84dd\u56fe \u548c \u751f\u6210 \u76f8\u673a 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 # \u5728 \u76f8\u673a \u5468\u56f4 80 \u7c73 \u5185 \u751f\u6210 \u8f66\u8f86 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 # \u5c06 \u56fe\u7247 \u4fdd\u5b58 \u5230 \u78c1\u76d8 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 # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u5c06 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f 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 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # \u5728 \u5730\u56fe \u4e0a \u67d0\u4e9b \u4f4d\u7f6e \u8bbe\u7f6e \u76f8\u673a 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 ) # \u83b7\u53d6 \u8bed\u4e49 \u76f8\u673a \u84dd\u56fe \u548c \u751f\u6210 \u76f8\u673a 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 # \u5728 \u76f8\u673a \u5468\u56f4 80 \u7c73 \u5185 \u751f\u6210 \u8f66\u8f86 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 # \u5c06 \u56fe\u7247 \u4fdd\u5b58 \u5230 \u78c1\u76d8 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_lfs/","text":"\u5927 \u6587\u4ef6 \u652f\u6301 \u53c2\u8003 \u6559\u7a0b \u3002","title":"tuto G lfs"},{"location":"tuto_G_lfs/#_1","text":"\u53c2\u8003 \u6559\u7a0b \u3002","title":"\u5927 \u6587\u4ef6 \u652f\u6301"},{"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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u9500\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u9500\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_navigation/","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 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba AI \u63a7\u5236 \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70 \u76f8\u673a \u51e0\u4f55 \u6784\u5efa \u9aa8\u67b6 \u603b\u7ed3 \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 # \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4eff\u771f settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u6211\u4eec \u4e5f \u4f1a \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 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":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_navigation/#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 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba AI \u63a7\u5236 \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70 \u76f8\u673a \u51e0\u4f55 \u6784\u5efa \u9aa8\u67b6 \u603b\u7ed3","title":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_navigation/#_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 # \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4eff\u771f settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u6211\u4eec \u4e5f \u4f1a \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 "},{"location":"tuto_G_pedestrian_navigation/#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_navigation/#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_navigation/#_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_navigation/#_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_navigation/#_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 \u884c\u4eba \u63a7\u5236 \u654f\u6377 \u7684 \u884c\u4e3a \u6a21\u4eff \uff1a \u8df3\u821e \u57fa\u4e8e \u7269\u7406 \u7684 \u4eba\u5f62 \u63a7\u5236 \u63a7\u5236\u5668 \uff1a \u610f\u5916 \u8dcc\u5012 \u5bfc\u822a \u5728 \u6ca1\u6709 \u5730\u56fe \u7684 \u57ce\u5e02 \u5bfc\u822a","title":"tuto G pedestrian visual"},{"location":"tuto_G_pedestrian_visual/#_1","text":"","title":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce"},{"location":"tuto_G_pedestrian_visual/#_2","text":"\u654f\u6377 \u7684 \u884c\u4e3a \u6a21\u4eff \uff1a \u8df3\u821e \u57fa\u4e8e \u7269\u7406 \u7684 \u4eba\u5f62 \u63a7\u5236 \u63a7\u5236\u5668 \uff1a \u610f\u5916 \u8dcc\u5012","title":"\u884c\u4eba \u63a7\u5236"},{"location":"tuto_G_pedestrian_visual/#_3","text":"\u5728 \u6ca1\u6709 \u5730\u56fe \u7684 \u57ce\u5e02 \u5bfc\u822a","title":"\u5bfc\u822a"},{"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 # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u6a21\u62df \u6a21\u62df\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # \u5982\u679c \u6709 \u590d\u73b0 \u7684 \u5fc5\u8981 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u968f\u673a \u79cd\u5b50 traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # \u6211\u4eec \u4e5f \u4f1a \u542f\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u80fd \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 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 # \u83b7\u53d6 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \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 \uff0c \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u968f\u673a \u9009\u53d6 \u751f\u6210 \u70b9 \u7684 \u6837\u672c \u5e76 \u751f\u6210 \u8f66\u8f86 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 ) # \u89e3\u6790 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \uff0c \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u7ed9\u4e88 \u63a7\u5236 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 \u4ee3\u7406 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u4ee3\u7406 \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 # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u6a21\u62df \u6a21\u62df\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # \u5982\u679c \u6709 \u590d\u73b0 \u7684 \u5fc5\u8981 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u968f\u673a \u79cd\u5b50 traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # \u6211\u4eec \u4e5f \u4f1a \u542f\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u80fd \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 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 # \u83b7\u53d6 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \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 \uff0c \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u968f\u673a \u9009\u53d6 \u751f\u6210 \u70b9 \u7684 \u6837\u672c \u5e76 \u751f\u6210 \u8f66\u8f86 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 ) # \u89e3\u6790 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \uff0c \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u7ed9\u4e88 \u63a7\u5236 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 \u4ee3\u7406 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u4ee3\u7406 \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 \u884c\u4eba \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u884c\u4eba \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 # -------------- # \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u7684 \u89c2\u5bdf \u89c2\u5bdf\u8005 # -------------- 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 \u538b\u7ebf \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 # -------------- # \u7ed9 \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 # -------------- 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 ) ) \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \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 \u884c\u4eba \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 \u8bb0\u5f55 \u5b8c\u6210 \u540e \uff0c \u8bb0\u5f55 \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 \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 \u9500\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 ) ) \" \" \" # -------------- # \u7ed9 \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 # -------------- \" \" \" 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 \u884c\u4eba \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u884c\u4eba \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 # -------------- # \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u7684 \u89c2\u5bdf \u89c2\u5bdf\u8005 # -------------- 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 \u538b\u7ebf \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 # -------------- # \u7ed9 \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 # -------------- 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 ) ) \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa","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 \u884c\u4eba \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 \u8bb0\u5f55 \u5b8c\u6210 \u540e \uff0c \u8bb0\u5f55 \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 \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 \u9500\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 ) ) \" \" \" # -------------- # \u7ed9 \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 # -------------- \" \" \" 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 \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09"},{"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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 # \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u83b7\u53d6 \u65f6\u95f4 \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # \u5982\u679c \u6709 \u5fc5\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u79cd\u5b50 \uff0c \u4ee5\u4fbf \u80fd\u591f \u91cd\u73b0 \u884c\u4e3a traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # \u542f\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u80fd \u5f00\u5230 \u6240 \u505a \u7684 \u4e8b 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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 # \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u83b7\u53d6 \u65f6\u95f4 \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # \u5982\u679c \u6709 \u5fc5\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u79cd\u5b50 \uff0c \u4ee5\u4fbf \u80fd\u591f \u91cd\u73b0 \u884c\u4e3a traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # \u542f\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u80fd \u5f00\u5230 \u6240 \u505a \u7684 \u4e8b 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 \u4ee3\u7406 \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":"\u4ea4\u901a\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_G_unreal/","text":"\u63a7\u5236 \u63a7\u5236\u53f0 \u547d\u4ee4 \u542f\u52a8 \u4eff\u771f \u540e \uff0c \u8f93\u5165 ~ \u952e \u8c03\u7528 \u63a7\u5236 \u63a7\u5236\u53f0 \u547d\u4ee4 \u3002 stat rhi : Rendering Hardware Interface \uff0c \u663e\u793a RHI \u5185\u5b58 \u548c \u6027\u80fd \u7edf\u8ba1 \u8ba1\u6570 \u6570\u636e \u7edf\u8ba1\u6570\u636e \u3002 HighResShot 3840x2160 \u2014 \u2014 \u6307\u5b9a \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u622a\u56fe \uff08 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff09 \uff0c \u56fe\u7247 \u5b58\u50a8 \u4f4d\u7f6e \uff1a \\ Saved \\ Screenshots \\ \u3002 \u6e32\u67d3 \u7ba1\u7ebf \u52a8\u753b \u6a21\u62df \u5149\u7ebf \u4f20\u64ad \u51e0\u4f55 \u8868\u793a \u5149\u6805 \u5316 \u7ed8\u5236 \u8c03\u7528 \uff08 draw call \uff09 \uff1a \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u56fe\u5f62 \u5f62\u5b66 \u56fe\u5f62\u5b66 \u4e2d \uff0c \u6307\u5411 \u56fe\u5f62 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u53d1\u9001 \u6307\u4ee4 \u4ee5 \u7ed8\u5236 \u56fe\u5f62 \u7684 \u8fc7\u7a0b \u3002 \u5149\u6805 \u5316 \uff1a \u627e\u51fa \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u6240 \u8986\u76d6 \u5230 \u7684 \u50cf\u7d20 \uff1b Git \u7248\u672c \u7ba1\u7406 \u6e90\u7801 \u63a7\u5236 - > \u8fde\u63a5 \u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7ba1\u7406 - > Git \uff1b Git \u8def\u5f84 \u9009\u62e9 Git \u5b89\u88c5 \u540e bin \u6587\u4ef6 \u4e2d \u7684 \u542f\u52a8 \u7a0b\u5e8f \uff1b \u9009\u62e9 \u63a5\u6536 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u6587\u6863","title":"tuto G unreal"},{"location":"tuto_G_unreal/#_1","text":"\u542f\u52a8 \u4eff\u771f \u540e \uff0c \u8f93\u5165 ~ \u952e \u8c03\u7528 \u63a7\u5236 \u63a7\u5236\u53f0 \u547d\u4ee4 \u3002 stat rhi : Rendering Hardware Interface \uff0c \u663e\u793a RHI \u5185\u5b58 \u548c \u6027\u80fd \u7edf\u8ba1 \u8ba1\u6570 \u6570\u636e \u7edf\u8ba1\u6570\u636e \u3002 HighResShot 3840x2160 \u2014 \u2014 \u6307\u5b9a \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u622a\u56fe \uff08 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff09 \uff0c \u56fe\u7247 \u5b58\u50a8 \u4f4d\u7f6e \uff1a \\ Saved \\ Screenshots \\ \u3002","title":"\u63a7\u5236\u53f0 \u547d\u4ee4"},{"location":"tuto_G_unreal/#_2","text":"\u52a8\u753b \u6a21\u62df \u5149\u7ebf \u4f20\u64ad \u51e0\u4f55 \u8868\u793a \u5149\u6805 \u5316 \u7ed8\u5236 \u8c03\u7528 \uff08 draw call \uff09 \uff1a \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u56fe\u5f62 \u5f62\u5b66 \u56fe\u5f62\u5b66 \u4e2d \uff0c \u6307\u5411 \u56fe\u5f62 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u53d1\u9001 \u6307\u4ee4 \u4ee5 \u7ed8\u5236 \u56fe\u5f62 \u7684 \u8fc7\u7a0b \u3002 \u5149\u6805 \u5316 \uff1a \u627e\u51fa \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u6240 \u8986\u76d6 \u5230 \u7684 \u50cf\u7d20 \uff1b","title":"\u6e32\u67d3 \u7ba1\u7ebf"},{"location":"tuto_G_unreal/#git","text":"\u6e90\u7801 \u63a7\u5236 - > \u8fde\u63a5 \u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7ba1\u7406 - > Git \uff1b Git \u8def\u5f84 \u9009\u62e9 Git \u5b89\u88c5 \u540e bin \u6587\u4ef6 \u4e2d \u7684 \u542f\u52a8 \u7a0b\u5e8f \uff1b \u9009\u62e9 \u63a5\u6536 \u8bbe\u7f6e","title":"Git \u7248\u672c \u7ba1\u7406"},{"location":"tuto_G_unreal/#_3","text":"","title":"\u865a\u5e7b \u5f15\u64ce \u6587\u6863"},{"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 \u63d2\u4ef6 \u5b89\u88c5 \u5bfc\u5165 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u4e0b \u4e00\u6b65 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 \u4f53 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u4f53 \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 \u63d2\u4ef6 \u5b89\u88c5 \u5bfc\u5165 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u4e0b \u4e00\u6b65","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 \u4f53 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u4f53 \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\u4e2d \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":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \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 \u4ea4\u901a\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 \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\u5316 \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 \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":"tuto M custom map overview"},{"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 \u751f\u6210 \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 \u5305 \u51c6\u5907"},{"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 \u4e4b\u524d \u7a33\u5b9a \u7684 \u5730\u56fe \u5b9a\u5236 \u65b9\u6cd5 \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 \u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51 \u5c06 \u8def\u7f51 \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6750\u8d28 \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 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177 \u4e0b \u4e00\u6b65 \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 \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 \u4e4b\u524d \u7a33\u5b9a \u7684 \u5730\u56fe \u5b9a\u5236 \u65b9\u6cd5 \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 \u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51 \u5c06 \u8def\u7f51 \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6750\u8d28 \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 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177 \u4e0b \u4e00\u6b65","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 \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_pedestrians/","text":"\u5185\u5bb9 \u521b\u4f5c - \u884c\u4eba Carla \u5728 WalkerFactory \u84dd\u56fe \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5168\u9762 \u5f00\u7bb1 \u5373\u7528 \u7684 \u884c\u4eba \u3002 \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u8fdb\u884c \u6269\u5c55 \u3002 \u4e3a 3D \u52a8\u753b \u5efa\u6a21 \u4eba\u4f53 \u89e3\u5256 \u89e3\u5256\u5b66 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u8d85\u51fa \u4e86 \u672c \u6587\u6863 \u7684 \u8303\u56f4 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5411 \u7528\u6237 \u63a8\u8350 \u66ff\u4ee3 \u8d44\u6e90 \uff0c \u4ee5 \u5b66\u4e60 \u5982\u4f55 \u5728 3D \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bf9 \u4eba \u8fdb\u884c \u5efa\u6a21 \u3002 \u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u5bfc\u5165 \u548c \u914d\u7f6e \u4e00\u4e2a \u5b8c\u6574 \u7684 \u4e09\u7ef4 \u4eba\u4f53 \u6a21\u578b \u4eba\u4f53\u6a21\u578b \uff0c \u4ee5\u4fbf \u5728 Carla \u4f7f\u7528 \u884c\u4eba \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u52a8\u753b \u7ed1\u5b9a \u5bfc\u5165 Armature Parenting \u5206\u914d Blender \u63d2\u4ef6 Export \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u5e94\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u6a59\u76ae \u7eb9\u8def \u9cde\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 Wheels \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u5149\u7167 UV \u8d34\u56fe \u5bfc\u5165 \u5efa\u6a21 \u884c\u4eba \u662f \u7ed1\u5b9a \u5230 \u5173\u8282 \u548c \u9aa8\u9abc \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7684 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u7ec4\u5408 \u3002 \u5b83\u4eec \u5e94\u8be5 \u4f5c\u4e3a \u9aa8\u67b6 \u7f51\u683c \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u7f51\u683c \u5c06 \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u5b9a\u4e49 \u3002 \u6709\u5173 \u9aa8\u9abc \u5b9a\u4e49 \u7684 \u4fe1\u606f \u53ef\u4ee5 \u5c01\u88c5 \u5728 \u4ece 3D \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u4e2d \u3002 \u51e0\u4f55 \u884c\u4eba \u5e94\u8be5 \u6709 30000 \u5230 50000 \u4e2a\u9762 \u3002 \u8fd9 \u5e94\u8be5 \u5305\u62ec \u6240\u6709 \u7684 \u89e3\u5256 \u548c \u8863\u670d \u3002 \u7406\u60f3 \u60c5\u51b5 \u4e0b \uff0c \u6a21\u578b \u5e94\u8be5 \u5177\u6709 \u4eba\u4f53 \u5c3a\u5bf8 \uff0c \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5728 \u5bfc\u5165 \u540e \u91cd\u65b0 \u7f29\u653e \u3002 \u6ce8\u610f \u8bf7 \u4ed4\u7ec6 \u6ce8\u610f 3D \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u4e00\u4e9b \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u5de5\u4f5c \uff0c \u800c \u53e6 \u4e00\u4e9b \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5 \u5398\u7c73 \u6216 \u4efb\u610f \u5355\u4f4d \u5de5\u4f5c \u3002 \u9aa8\u9abc \u5c42\u6b21 \u9aa8\u9abc \u5c42\u6b21 \u5e94 \u9075\u5faa Carla \u7684 GEN3 \u9aa8\u9abc \u5c42\u6b21 \uff0c \u4e0b\u8f7d \u6a21\u677f \u4ee5 \u4e0e \u60a8 \u81ea\u5df1 \u7684 \u6a21\u578b \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u53ef\u4ee5 \u5220\u9664 \u4eba\u4f53 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5e76 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u3002 \u8fd9 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u4e2d Carla \u7684 \u9884 \u751f\u6210 \u9aa8\u9abc \u5b9a\u4e49 \u5339\u914d \u76f8\u5339\u914d \u3002 \u8499\u76ae \u548c \u6743\u91cd \u7ed8\u5236 \u51c6\u5907 3D \u6a21\u578b \u4ee5\u4f7f \u5176 \u6b63\u786e \u79fb\u52a8 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u662f \u786e\u4fdd \u6a21\u578b \u7684 \u5404\u4e2a \u9876\u70b9 \u4ee5 \u6b63\u786e \u7684 \u65b9\u5f0f \u53d7\u5230 \u9aa8\u67b6 \u4e2d \u6bcf\u6839 \u9aa8\u9abc \u7684 \u5f71\u54cd \u3002 \u4f8b\u5982 \uff0c \u63a7\u5236 \u4e09\u7ef4 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624b\u8155 \u7684 \u9aa8\u9abc \u5e94\u8be5 \u63a7\u5236 \u624b \u548c \u624b\u8155 \u7684 \u9876\u70b9 \u3002 \u5b83 \u5e94\u8be5 \u5bf9 \u524d\u81c2 \u7a0d\u8fdc \u7684 \u9876\u70b9 \u4ea7\u751f \u8f7b\u5fae \u5f71\u54cd \uff0c \u4f46 \u4e0d \u5e94\u8be5 \u5f71\u54cd \u8098\u90e8 \u9644\u8fd1 \u7684 \u4efb\u4f55 \u9876\u70b9 \u3002 \u56e0\u6b64 \uff0c \u60a8 \u5e94\u8be5 \u4f7f\u7528 3D \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u6743\u91cd \u7ed8\u5236 \u5de5\u5177 \u6765 \u5fae\u8c03 \u6bcf\u6839 \u9aa8\u9abc \u5bf9 \u7f51\u683c \u7684 \u5f71\u54cd \u3002 \u8fd9\u662f \u4e00\u4e2a \u590d\u6742 \u7684 \u8fc7\u7a0b \uff0c \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u53c2\u8003 \u5176\u4ed6 \u8d44\u6e90 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u4eba\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8499\u76ae \u548c \u6743\u91cd \u7ed8\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5c06 \u884c\u4eba \u5bfc\u5165 Carla \u5b8c\u6210 \u7f51\u683c \u7684 \u51e0\u4f55 \u5f62\u72b6 \u5e76 \u5c06 \u5176 \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u5e94\u8be5 \u5c06 \u5176 \u4ece 3D \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d\u4ee5 FBX \u683c\u5f0f \u5bfc\u51fa \u3002 \u5b8c\u6210 \u5bfc\u51fa \u540e \uff0c \u5728 Carla \u5185\u5bb9 \u5e93\u4e2d \u627e\u5230 \u5408\u9002 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4f4d\u7f6e \uff0c \u7136\u540e \u5c06 FBX \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u60a8 \u53ef\u80fd \u5e0c\u671b \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u653e\u7f6e \u5728 \u73b0\u6709 \u884c\u4eba Content > Carla > Static > Pedestrians \u65c1\u8fb9 \u3002 \u5728 \u5bfc\u5165 \u9009\u9879 \u5f39 \u51fa \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \uff0c \u786e\u4fdd \u9009\u62e9 \u4e86 Skeletal Mesh \u548c Import Mesh \uff0c \u5e76\u4e14 Import Content Type \u8bbe\u7f6e \u4e3a Geometry and Skinning Weights \u3002 \u5728 Skeleton \u90e8\u5206 \uff0c \u9009\u62e9 Carla \u7684 \u9884 \u751f\u6210 \u9aa8\u67b6 \u5b9a\u4e49 Skel _ GEN3 \u3002 \u7136\u540e \u6309 Import All \u3002 Skel _ GEN3 \u5b9a\u4e49 \u5df2 \u6307\u5b9a \u884c\u4eba \u52a8\u753b \u3002 \u901a\u8fc7 Python API \u8ba9 \u4f60 \u7684 \u65b0 \u884c\u4eba \u53ef\u4ee5 \u8bbf\u95ee \u6210\u529f \u5c06 \u884c\u4eba \u5bfc\u5165 Carla \u7684 \u5185\u5bb9 \u5e93\u540e \uff0c \u60a8 \u73b0\u5728 \u5fc5\u987b \u901a\u8fc7 API \u4f7f \u884c\u4eba \u53ef\u7528 \u3002 \u5bfc\u822a \u5230 \u73b0\u6709 \u884c\u4eba \u84dd\u56fe \u7684 \u4f4d\u7f6e Content > Carla > Blueprints > Walkers \u3002 \u590d\u5236 GEN3 \u84dd\u56fe \uff0c \u4f8b\u5982 BP _ Walker _ AB001 _ G3 \u5e76\u91cd \u547d\u540d \u3002 \u53cc\u51fb \u590d\u5236 \u7684 \u84dd\u56fe \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5b83 \u3002 \u60a8 \u9700\u8981 \u5c06 \u84dd\u56fe \u7684 Mesh \u7ec4\u4ef6 \u66f4 \u6539\u4e3a \u65b0 \u7684 \u884c\u4eba \u6a21\u578b \u3002 \u5c06 \u521a\u521a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u5165 \u7684 \u9aa8\u67b6 \u7f51\u683c \u62d6 \u653e\u5230 Skeletal Mesh \u63d2\u69fd \u4e2d \u3002 \u5176\u4ed6 UE5 + iphone + MetaHuman \u6570\u5b57 \u4eba \u6d41\u7a0b \u52a8\u4f5c \u6355\u6349 \u548c \u9762\u90e8 \u6355\u6349 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8c03\u7814","title":"Tuto content authoring pedestrians"},{"location":"tuto_content_authoring_pedestrians/#-","text":"Carla \u5728 WalkerFactory \u84dd\u56fe \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5168\u9762 \u5f00\u7bb1 \u5373\u7528 \u7684 \u884c\u4eba \u3002 \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u8fdb\u884c \u6269\u5c55 \u3002 \u4e3a 3D \u52a8\u753b \u5efa\u6a21 \u4eba\u4f53 \u89e3\u5256 \u89e3\u5256\u5b66 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u8d85\u51fa \u4e86 \u672c \u6587\u6863 \u7684 \u8303\u56f4 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5411 \u7528\u6237 \u63a8\u8350 \u66ff\u4ee3 \u8d44\u6e90 \uff0c \u4ee5 \u5b66\u4e60 \u5982\u4f55 \u5728 3D \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bf9 \u4eba \u8fdb\u884c \u5efa\u6a21 \u3002 \u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u5bfc\u5165 \u548c \u914d\u7f6e \u4e00\u4e2a \u5b8c\u6574 \u7684 \u4e09\u7ef4 \u4eba\u4f53 \u6a21\u578b \u4eba\u4f53\u6a21\u578b \uff0c \u4ee5\u4fbf \u5728 Carla \u4f7f\u7528 \u884c\u4eba \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u52a8\u753b \u7ed1\u5b9a \u5bfc\u5165 Armature Parenting \u5206\u914d Blender \u63d2\u4ef6 Export \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u5e94\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u6a59\u76ae \u7eb9\u8def \u9cde\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 Wheels \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u5149\u7167 UV \u8d34\u56fe \u5bfc\u5165","title":"\u5185\u5bb9 \u521b\u4f5c - \u884c\u4eba"},{"location":"tuto_content_authoring_pedestrians/#_1","text":"\u884c\u4eba \u662f \u7ed1\u5b9a \u5230 \u5173\u8282 \u548c \u9aa8\u9abc \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7684 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u7ec4\u5408 \u3002 \u5b83\u4eec \u5e94\u8be5 \u4f5c\u4e3a \u9aa8\u67b6 \u7f51\u683c \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u7f51\u683c \u5c06 \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u5b9a\u4e49 \u3002 \u6709\u5173 \u9aa8\u9abc \u5b9a\u4e49 \u7684 \u4fe1\u606f \u53ef\u4ee5 \u5c01\u88c5 \u5728 \u4ece 3D \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u4e2d \u3002 \u51e0\u4f55 \u884c\u4eba \u5e94\u8be5 \u6709 30000 \u5230 50000 \u4e2a\u9762 \u3002 \u8fd9 \u5e94\u8be5 \u5305\u62ec \u6240\u6709 \u7684 \u89e3\u5256 \u548c \u8863\u670d \u3002 \u7406\u60f3 \u60c5\u51b5 \u4e0b \uff0c \u6a21\u578b \u5e94\u8be5 \u5177\u6709 \u4eba\u4f53 \u5c3a\u5bf8 \uff0c \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5728 \u5bfc\u5165 \u540e \u91cd\u65b0 \u7f29\u653e \u3002 \u6ce8\u610f \u8bf7 \u4ed4\u7ec6 \u6ce8\u610f 3D \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u4e00\u4e9b \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u5de5\u4f5c \uff0c \u800c \u53e6 \u4e00\u4e9b \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5 \u5398\u7c73 \u6216 \u4efb\u610f \u5355\u4f4d \u5de5\u4f5c \u3002 \u9aa8\u9abc \u5c42\u6b21 \u9aa8\u9abc \u5c42\u6b21 \u5e94 \u9075\u5faa Carla \u7684 GEN3 \u9aa8\u9abc \u5c42\u6b21 \uff0c \u4e0b\u8f7d \u6a21\u677f \u4ee5 \u4e0e \u60a8 \u81ea\u5df1 \u7684 \u6a21\u578b \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u53ef\u4ee5 \u5220\u9664 \u4eba\u4f53 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5e76 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u3002 \u8fd9 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u4e2d Carla \u7684 \u9884 \u751f\u6210 \u9aa8\u9abc \u5b9a\u4e49 \u5339\u914d \u76f8\u5339\u914d \u3002 \u8499\u76ae \u548c \u6743\u91cd \u7ed8\u5236 \u51c6\u5907 3D \u6a21\u578b \u4ee5\u4f7f \u5176 \u6b63\u786e \u79fb\u52a8 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u662f \u786e\u4fdd \u6a21\u578b \u7684 \u5404\u4e2a \u9876\u70b9 \u4ee5 \u6b63\u786e \u7684 \u65b9\u5f0f \u53d7\u5230 \u9aa8\u67b6 \u4e2d \u6bcf\u6839 \u9aa8\u9abc \u7684 \u5f71\u54cd \u3002 \u4f8b\u5982 \uff0c \u63a7\u5236 \u4e09\u7ef4 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624b\u8155 \u7684 \u9aa8\u9abc \u5e94\u8be5 \u63a7\u5236 \u624b \u548c \u624b\u8155 \u7684 \u9876\u70b9 \u3002 \u5b83 \u5e94\u8be5 \u5bf9 \u524d\u81c2 \u7a0d\u8fdc \u7684 \u9876\u70b9 \u4ea7\u751f \u8f7b\u5fae \u5f71\u54cd \uff0c \u4f46 \u4e0d \u5e94\u8be5 \u5f71\u54cd \u8098\u90e8 \u9644\u8fd1 \u7684 \u4efb\u4f55 \u9876\u70b9 \u3002 \u56e0\u6b64 \uff0c \u60a8 \u5e94\u8be5 \u4f7f\u7528 3D \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u6743\u91cd \u7ed8\u5236 \u5de5\u5177 \u6765 \u5fae\u8c03 \u6bcf\u6839 \u9aa8\u9abc \u5bf9 \u7f51\u683c \u7684 \u5f71\u54cd \u3002 \u8fd9\u662f \u4e00\u4e2a \u590d\u6742 \u7684 \u8fc7\u7a0b \uff0c \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u53c2\u8003 \u5176\u4ed6 \u8d44\u6e90 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u4eba\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8499\u76ae \u548c \u6743\u91cd \u7ed8\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u5efa\u6a21"},{"location":"tuto_content_authoring_pedestrians/#carla","text":"\u5b8c\u6210 \u7f51\u683c \u7684 \u51e0\u4f55 \u5f62\u72b6 \u5e76 \u5c06 \u5176 \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u5e94\u8be5 \u5c06 \u5176 \u4ece 3D \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d\u4ee5 FBX \u683c\u5f0f \u5bfc\u51fa \u3002 \u5b8c\u6210 \u5bfc\u51fa \u540e \uff0c \u5728 Carla \u5185\u5bb9 \u5e93\u4e2d \u627e\u5230 \u5408\u9002 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4f4d\u7f6e \uff0c \u7136\u540e \u5c06 FBX \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u60a8 \u53ef\u80fd \u5e0c\u671b \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u653e\u7f6e \u5728 \u73b0\u6709 \u884c\u4eba Content > Carla > Static > Pedestrians \u65c1\u8fb9 \u3002 \u5728 \u5bfc\u5165 \u9009\u9879 \u5f39 \u51fa \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \uff0c \u786e\u4fdd \u9009\u62e9 \u4e86 Skeletal Mesh \u548c Import Mesh \uff0c \u5e76\u4e14 Import Content Type \u8bbe\u7f6e \u4e3a Geometry and Skinning Weights \u3002 \u5728 Skeleton \u90e8\u5206 \uff0c \u9009\u62e9 Carla \u7684 \u9884 \u751f\u6210 \u9aa8\u67b6 \u5b9a\u4e49 Skel _ GEN3 \u3002 \u7136\u540e \u6309 Import All \u3002 Skel _ GEN3 \u5b9a\u4e49 \u5df2 \u6307\u5b9a \u884c\u4eba \u52a8\u753b \u3002","title":"\u5c06 \u884c\u4eba \u5bfc\u5165 Carla"},{"location":"tuto_content_authoring_pedestrians/#python-api","text":"\u6210\u529f \u5c06 \u884c\u4eba \u5bfc\u5165 Carla \u7684 \u5185\u5bb9 \u5e93\u540e \uff0c \u60a8 \u73b0\u5728 \u5fc5\u987b \u901a\u8fc7 API \u4f7f \u884c\u4eba \u53ef\u7528 \u3002 \u5bfc\u822a \u5230 \u73b0\u6709 \u884c\u4eba \u84dd\u56fe \u7684 \u4f4d\u7f6e Content > Carla > Blueprints > Walkers \u3002 \u590d\u5236 GEN3 \u84dd\u56fe \uff0c \u4f8b\u5982 BP _ Walker _ AB001 _ G3 \u5e76\u91cd \u547d\u540d \u3002 \u53cc\u51fb \u590d\u5236 \u7684 \u84dd\u56fe \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5b83 \u3002 \u60a8 \u9700\u8981 \u5c06 \u84dd\u56fe \u7684 Mesh \u7ec4\u4ef6 \u66f4 \u6539\u4e3a \u65b0 \u7684 \u884c\u4eba \u6a21\u578b \u3002 \u5c06 \u521a\u521a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u5165 \u7684 \u9aa8\u67b6 \u7f51\u683c \u62d6 \u653e\u5230 Skeletal Mesh \u63d2\u69fd \u4e2d \u3002","title":"\u901a\u8fc7 Python API \u8ba9 \u4f60 \u7684 \u65b0 \u884c\u4eba \u53ef\u4ee5 \u8bbf\u95ee"},{"location":"tuto_content_authoring_pedestrians/#_2","text":"UE5 + iphone + MetaHuman \u6570\u5b57 \u4eba \u6d41\u7a0b \u52a8\u4f5c \u6355\u6349 \u548c \u9762\u90e8 \u6355\u6349 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8c03\u7814","title":"\u5176\u4ed6"},{"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 \u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86 \u5bfc\u5165 \u6dfb\u52a0 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5c06 \u6c7d\u8f66 \u96f6\u4ef6 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc Blender \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7 \u521b\u5efa \u52a8\u753b \u521b\u5efa \u84dd\u56fe \u6750\u8d28 \u7ed9 \u8f66\u8f86 \u5e94\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 \u60ac\u67b6 \u7279\u6027 \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 \u7684 \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 \u8f66\u8f86 \u5e94\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 \u4eff\u771f \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 \u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86 \u5bfc\u5165 \u6dfb\u52a0 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5c06 \u6c7d\u8f66 \u96f6\u4ef6 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc Blender \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7 \u521b\u5efa \u52a8\u753b \u521b\u5efa \u84dd\u56fe \u6750\u8d28 \u7ed9 \u8f66\u8f86 \u5e94\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 \u60ac\u67b6 \u7279\u6027 \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 \u7684 \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 \u8f66\u8f86 \u5e94\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 \u4eff\u771f \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 \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\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 \u4eff\u771f \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 \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\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 \u4eff\u771f \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 \u5e76 \u8fdb\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8fdb\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 HUTB \u57fa\u4e8e \u6e56\u5357 \u5de5\u5546 \u5546\u5927 \u5927\u5b66 \u5de5\u5546\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":"\u5b66\u4e60 Carla \u7684 \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 \u5e76 \u8fdb\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8fdb\u884c \u5ba2\u6237\u7aef \u8fde\u63a5 "},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e\u8005 "},{"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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 HUTB \u57fa\u4e8e \u6e56\u5357 \u5de5\u5546 \u5546\u5927 \u5927\u5b66 \u5de5\u5546\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 \u4ea4\u901a \u4eff\u771f \u7cfb\u7edf \u672c \u7cfb\u7edf \u57fa\u4e8e \u5f00\u6e90 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \uff0c \u6784\u5efa \u5168 \u9053\u8def \u573a\u666f \u4eff\u771f \u548c \u667a\u80fd \u4ea4\u901a \u7cfb\u7edf \u4ea4\u901a\u7cfb\u7edf \u4eff\u771f \u7cfb\u7edf \uff0c \u6ee1\u8db3 \u6211\u56fd \u7279\u5b9a \u4ea4\u901a \u8def\u51b5 \u591a\u6837 \u591a\u6837\u5316 \u9700\u6c42 \uff0c \u4e3a \u667a\u6167 \u4ea4\u901a \u7b97\u6cd5 \u7684 \u6559\u5b66 \u4e0e \u5e94\u7528 \u63d0\u4f9b \u7684 \u6570\u636e \u5e95\u5ea7 \u3002 \u4ea4\u901a \u6570\u636e \u5bfc\u5165 \u548c \u7f16\u8f91 \u652f\u6301 \u4ece \u516c\u5f00 \u9053\u8def \u5730\u56fe \u5bfc\u5165 \u6216 \u521b\u5efa \u751f\u6210 \u9053\u8def \u7f51\u7edc \uff0c \u652f\u6301 \u6dfb\u52a0 \u8f66\u8f86 \u5230 \u9053\u8def \u7f51\u7edc \u5e76 \u5b9a\u4e49 \u5176 \u8f68\u8ff9 \u4ee5 \u5408\u6210 \u9a7e\u9a76 \u573a\u666f \uff0c \u652f\u6301 \u5b9a\u4e49 \u8f66\u9053 \u6570\u91cf \u548c \u8f66\u9053 \u957f \u5bbd\u5ea6 \uff0c \u652f\u6301 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u7f16\u8f91 \u3002 \u8f66\u8f86 \u8fd0\u52a8 \u652f\u6301 \u5b9a\u4e49 \u8f66\u8f86 \u8fd0\u52a8 \u8d77\u70b9 \u548c \u76ee\u6807 \u4f4d\u7f6e \uff0c \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6307\u5b9a \u968f\u673a \u901f\u5ea6 \u503c \uff0c \u751f\u6210 \u8f66\u8f86 \u8f68\u8ff9 \u3002 \u652f\u6301 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff0c \u4f7f \u5176 \u6cbf \u8f68\u8ff9 \u79fb\u52a8 \u65f6 \u4e0d\u4f1a \u53d1\u751f \u78b0\u649e \u6216 \u6a21\u62df \u78b0\u649e \u3002 \u652f\u6301 \u8f66\u8f86 \u8fd0\u52a8 \u6a21\u62df \u548c \u663e\u793a \u81ea\u52a8 \u751f\u6210 \u7684 \u8f68\u8ff9 \u573a\u666f \uff0c \u53ef\u4ee5 \u770b\u5230 \u8f66\u8f86 \u6cbf \u6307\u5b9a \u8f68\u8ff9 \u884c\u9a76 \u4ee5 \u5230\u8fbe \u5176 \u76ee\u6807 \u4f4d\u7f6e \u3002 \u8054\u5408 \u4eff\u771f \u652f\u6301 \u8054\u5408 \u865a\u62df \u5f15\u64ce \u4eff\u771f \u6a21\u62df \u5b9e\u9a8c \u6a21\u62df\u5b9e\u9a8c \uff0c \u4e0d\u4ec5 \u53ef\u4ee5 \u770b\u5230 \u533a\u57df \u5b8f\u89c2 \uff0c \u8fd8 \u53ef\u4ee5 \u770b\u5230 \u8def\u53e3 \u5fae\u89c2 \uff0c \u652f\u6301 3D \u52a8\u753b \u6f14\u793a \u8fd0\u52a8 \u573a\u666f \u3002 \u652f\u6301 \u914d\u7f6e \u5355\u4e2a \u6216 \u591a\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff0c \u8fdb\u884c \u8f66\u8f86 \u7684 \u68c0\u6d4b \u3002 \u652f\u6301 \u8ba1\u7b97 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \uff0c \u5e76 \u8fdb\u884c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8bbe\u7f6e \u3002 \u652f\u6301 \u6d4b\u8bd5 \u8f66\u8f86 \u6309 \u5730\u56fe \u9009\u70b9 \u8fdb\u884c \u79fb\u52a8 \uff0c \u770b\u5230 \u7ea2\u706f \u505c \u3001 \u7eff\u706f \u884c \uff0c \u4ee5\u53ca \u907f\u8ba9 \u7b49 \u529f\u80fd \u3002 \u652f\u6301 \u52a0\u5165 \u66f4 \u591a \u7684 \u8f66\u8f86 \u8fdb\u884c \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u7684 \u6a21\u62df \uff0c \u7edf\u8ba1 \u4f18\u5316 \u524d \u548c \u4f18\u5316 \u540e \u7684 \u7ed3\u679c \u3002 \u6548\u679c \u8bc4\u4ef7 \u8def\u53e3 \u8bc4\u4ef7 \uff1a \u652f\u6301 \u4fdd\u6b63 \u9ad8\u4fdd\u6b63 \u7684 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u4e09\u7ef4 \u5efa\u6a21 \uff0c \u5efa\u6a21 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef \u3001 \u8def\u53e3 \u9971\u548c \u3001 \u6392\u961f \u957f\u5ea6 \u7b49 \u591a\u79cd \u8def\u53e3 \u771f\u5b9e \u771f\u5b9e\u6027 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u3002 \u8def\u7f51 \u8bc4\u4ef7 \uff1a \u652f\u6301 \u57fa\u4e8e \u8def\u7f51 \u6570\u636e \u7684 \u8def\u7f51 \u52a8\u6001 \u4eff\u771f \uff0c \u9884\u6d4b \u548c \u5206\u6790 \u4e0d\u540c \u4eff\u771f \u6d41\u91cf \u548c \u771f\u5b9e \u6d41\u91cf \u7684 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u3002 \u8bfe\u7a0b \u4e00 \uff1a \u4ea4\u901a \u4eff\u771f \u4e0e \u573a\u666f \u5efa\u6a21 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 \u4e0e \u7f16\u8f91 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u5bfc\u5165 \u516c\u5f00 \u9053\u8def \u5730\u56fe \u6216 \u521b\u5efa \u751f\u6210 \u9053\u8def \u7f51\u7edc \uff0c \u4ee5\u53ca \u7f16\u8f91 \u9053\u8def \u5c5e\u6027 \u548c \u8f66\u9053 \u4fe1\u606f \uff0c \u6784\u5efa \u5177\u4f53 \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u8f66\u8f86 \u8f68\u8ff9 \u751f\u6210 \u4e0e \u6a21\u62df \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4e3a \u8f66\u8f86 \u6307\u5b9a \u8d77\u70b9 \u548c \u76ee\u6807 \u4f4d\u7f6e \uff0c \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u8f68\u8ff9 \uff0c \u6a21\u62df \u8f66\u8f86 \u7684 \u884c\u9a76 \u8fc7\u7a0b \uff0c \u5e76 \u89c2\u5bdf \u8f66\u8f86 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u884c\u4e3a \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 \u4f18\u5316 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u914d\u7f6e \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \uff0c \u5e76 \u901a\u8fc7 \u4eff\u771f \u5b9e\u9a8c \u4f18\u5316 \u914d\u65f6 \u53c2\u6570 \uff0c \u4ee5 \u63d0\u9ad8 \u4ea4\u901a \u6d41\u7545 \u5ea6 \u548c \u51cf\u5c11 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u3002 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u6a21\u62df \u4e0e \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u6a21\u62df \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u573a\u666f \uff0c \u52a0\u5165 \u66f4 \u591a \u7684 \u8f66\u8f86 \u8fdb\u884c \u4eff\u771f \uff0c \u8fdb\u884c \u62e5\u5835 \u60c5\u51b5 \u7684 \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \uff0c \u5e76 \u8bc4\u4f30 \u4f18\u5316 \u63aa\u65bd \u7684 \u6548\u679c \u3002 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u8bc4\u4f30 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u8def\u53e3 \u8bc4\u4ef7 \u6307\u6807 \uff0c \u5206\u6790 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8f66\u5747 \u5ef6\u8bef \u3001 \u9971\u548c \u9971\u548c\u5ea6 \u3001 \u6392\u961f \u957f\u5ea6 \u7b49 \u6307\u6807 \uff0c \u8bc4\u4f30 \u8def\u53e3 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u573a\u666f \u5efa\u6a21 \u4e0e \u53ef\u89c6 \u53ef\u89c6\u5316 \u5c55\u793a \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u573a\u666f \u5efa\u6a21 \u5de5\u5177 \uff0c \u8fdb\u884c \u4ea4\u901a \u573a\u666f \u7684 \u5efa\u6a21 \u548c \u53ef\u89c6 \u53ef\u89c6\u5316 \u5c55\u793a \uff0c \u4ee5\u53ca \u8bbe\u8ba1 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u6f14\u793a \u754c\u9762 \uff0c \u5448\u73b0 \u4eff\u771f \u7ed3\u679c \u548c \u5b9e\u9a8c \u6548\u679c \u3002 \u8bfe\u7a0b \u4e8c \uff1a \u667a\u80fd \u4ea4\u901a \u7b97\u6cd5 \u4e0e \u4f18\u5316 \u4ea4\u901a \u573a\u666f \u611f\u77e5 \u4e0e \u5206\u6790 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u5229\u7528 \u7cfb\u7edf \u8fdb\u884c \u76ee\u6807 \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u548c \u518d \u8bc6\u522b \uff0c \u8fdb\u884c \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5206\u6790 \u548c \u7edf\u8ba1 \uff0c \u5bf9 \u4ea4\u901a \u8fdb\u884c \u6001\u52bf \u611f\u77e5 \uff0c \u4e3a \u540e\u9762 \u7684 \u7b97\u6cd5 \u5b9e\u73b0 \u63d0\u4f9b \u57fa\u7840 \u3002 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u9884\u6d4b \u6a21\u578b \u5efa\u7acb \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u4ea4\u901a \u6570\u636e \uff0c \u5efa\u7acb \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u9884\u6d4b \u6a21\u578b \uff0c \u4ee5 \u9884\u6d4b \u672a\u6765 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u60c5\u51b5 \uff0c \u5e76 \u8bc4\u4f30 \u6a21\u578b \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u548c \u6548\u679c \u3002 \u4ea4\u901a \u7f51\u7edc \u4ea4\u901a\u7f51 \u4ea4\u901a\u7f51\u7edc \u4f18\u5316 \u7b56\u7565 \u8bbe\u8ba1 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u4ea4\u901a \u7f51\u7edc \u4ea4\u901a\u7f51 \u4ea4\u901a\u7f51\u7edc \u6570\u636e \uff0c \u8bbe\u8ba1 \u4ea4\u901a \u7f51\u7edc \u4ea4\u901a\u7f51 \u4ea4\u901a\u7f51\u7edc \u4f18\u5316 \u7b56\u7565 \uff0c \u901a\u8fc7 \u8c03\u6574 \u8def\u7ebf \u89c4\u5212 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u7b49 \u53c2\u6570 \uff0c \u63d0\u5347 \u6574\u4f53 \u4ea4\u901a \u6548\u7387 \u3002 \u667a\u80fd \u4fe1\u53f7 \u63a7\u5236 \u7b97\u6cd5 \u5b9e\u73b0 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u4fe1\u53f7 \u63a7\u5236 \u529f\u80fd \uff0c \u5b9e\u73b0 \u667a\u80fd \u4fe1\u53f7 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \uff0c \u4f18\u5316 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u7684 \u914d\u65f6 \u65b9\u6848 \uff0c \u63d0\u9ad8 \u4ea4\u901a \u6d41\u7545 \u5ea6 \u548c \u51cf\u5c11 \u62e5\u5835 \u3002 \u4ea4\u901a \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4e0e \u5206\u6790 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \uff0c \u5bf9 \u4ea4\u901a \u6570\u636e \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u5206\u6790 \uff0c \u63a2\u7d22 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u62e5\u5835 \u72b6\u51b5 \u7b49 \u8d8b\u52bf \u548c \u89c4\u5f8b \u3002 \u4ea4\u901a \u573a\u666f \u4f18\u5316 \u4e0e \u4eff\u771f \u5b9e\u9a8c \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u6839\u636e \u5b9e\u9645 \u4ea4\u901a \u95ee\u9898 \uff0c \u8fdb\u884c \u573a\u666f \u4f18\u5316 \u548c \u4eff\u771f \u5b9e\u9a8c \uff0c \u8bc4\u4f30 \u4f18\u5316 \u7b56\u7565 \u7684 \u6548\u679c \uff0c \u63d0\u51fa \u6539\u8fdb \u65b9\u6848 \u5e76 \u8fdb\u884c \u9a8c\u8bc1 \u3002 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 \u5bfc\u822a \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 \u4f53 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53 \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/#_3","text":"\u672c \u7cfb\u7edf \u57fa\u4e8e \u5f00\u6e90 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \uff0c \u6784\u5efa \u5168 \u9053\u8def \u573a\u666f \u4eff\u771f \u548c \u667a\u80fd \u4ea4\u901a \u7cfb\u7edf \u4ea4\u901a\u7cfb\u7edf \u4eff\u771f \u7cfb\u7edf \uff0c \u6ee1\u8db3 \u6211\u56fd \u7279\u5b9a \u4ea4\u901a \u8def\u51b5 \u591a\u6837 \u591a\u6837\u5316 \u9700\u6c42 \uff0c \u4e3a \u667a\u6167 \u4ea4\u901a \u7b97\u6cd5 \u7684 \u6559\u5b66 \u4e0e \u5e94\u7528 \u63d0\u4f9b \u7684 \u6570\u636e \u5e95\u5ea7 \u3002 \u4ea4\u901a \u6570\u636e \u5bfc\u5165 \u548c \u7f16\u8f91 \u652f\u6301 \u4ece \u516c\u5f00 \u9053\u8def \u5730\u56fe \u5bfc\u5165 \u6216 \u521b\u5efa \u751f\u6210 \u9053\u8def \u7f51\u7edc \uff0c \u652f\u6301 \u6dfb\u52a0 \u8f66\u8f86 \u5230 \u9053\u8def \u7f51\u7edc \u5e76 \u5b9a\u4e49 \u5176 \u8f68\u8ff9 \u4ee5 \u5408\u6210 \u9a7e\u9a76 \u573a\u666f \uff0c \u652f\u6301 \u5b9a\u4e49 \u8f66\u9053 \u6570\u91cf \u548c \u8f66\u9053 \u957f \u5bbd\u5ea6 \uff0c \u652f\u6301 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u7f16\u8f91 \u3002 \u8f66\u8f86 \u8fd0\u52a8 \u652f\u6301 \u5b9a\u4e49 \u8f66\u8f86 \u8fd0\u52a8 \u8d77\u70b9 \u548c \u76ee\u6807 \u4f4d\u7f6e \uff0c \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6307\u5b9a \u968f\u673a \u901f\u5ea6 \u503c \uff0c \u751f\u6210 \u8f66\u8f86 \u8f68\u8ff9 \u3002 \u652f\u6301 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff0c \u4f7f \u5176 \u6cbf \u8f68\u8ff9 \u79fb\u52a8 \u65f6 \u4e0d\u4f1a \u53d1\u751f \u78b0\u649e \u6216 \u6a21\u62df \u78b0\u649e \u3002 \u652f\u6301 \u8f66\u8f86 \u8fd0\u52a8 \u6a21\u62df \u548c \u663e\u793a \u81ea\u52a8 \u751f\u6210 \u7684 \u8f68\u8ff9 \u573a\u666f \uff0c \u53ef\u4ee5 \u770b\u5230 \u8f66\u8f86 \u6cbf \u6307\u5b9a \u8f68\u8ff9 \u884c\u9a76 \u4ee5 \u5230\u8fbe \u5176 \u76ee\u6807 \u4f4d\u7f6e \u3002 \u8054\u5408 \u4eff\u771f \u652f\u6301 \u8054\u5408 \u865a\u62df \u5f15\u64ce \u4eff\u771f \u6a21\u62df \u5b9e\u9a8c \u6a21\u62df\u5b9e\u9a8c \uff0c \u4e0d\u4ec5 \u53ef\u4ee5 \u770b\u5230 \u533a\u57df \u5b8f\u89c2 \uff0c \u8fd8 \u53ef\u4ee5 \u770b\u5230 \u8def\u53e3 \u5fae\u89c2 \uff0c \u652f\u6301 3D \u52a8\u753b \u6f14\u793a \u8fd0\u52a8 \u573a\u666f \u3002 \u652f\u6301 \u914d\u7f6e \u5355\u4e2a \u6216 \u591a\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff0c \u8fdb\u884c \u8f66\u8f86 \u7684 \u68c0\u6d4b \u3002 \u652f\u6301 \u8ba1\u7b97 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \uff0c \u5e76 \u8fdb\u884c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8bbe\u7f6e \u3002 \u652f\u6301 \u6d4b\u8bd5 \u8f66\u8f86 \u6309 \u5730\u56fe \u9009\u70b9 \u8fdb\u884c \u79fb\u52a8 \uff0c \u770b\u5230 \u7ea2\u706f \u505c \u3001 \u7eff\u706f \u884c \uff0c \u4ee5\u53ca \u907f\u8ba9 \u7b49 \u529f\u80fd \u3002 \u652f\u6301 \u52a0\u5165 \u66f4 \u591a \u7684 \u8f66\u8f86 \u8fdb\u884c \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u7684 \u6a21\u62df \uff0c \u7edf\u8ba1 \u4f18\u5316 \u524d \u548c \u4f18\u5316 \u540e \u7684 \u7ed3\u679c \u3002","title":"\u4ea4\u901a \u4eff\u771f \u7cfb\u7edf"},{"location":"tutorials/#_4","text":"\u8def\u53e3 \u8bc4\u4ef7 \uff1a \u652f\u6301 \u4fdd\u6b63 \u9ad8\u4fdd\u6b63 \u7684 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u4e09\u7ef4 \u5efa\u6a21 \uff0c \u5efa\u6a21 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef \u3001 \u8def\u53e3 \u9971\u548c \u3001 \u6392\u961f \u957f\u5ea6 \u7b49 \u591a\u79cd \u8def\u53e3 \u771f\u5b9e \u771f\u5b9e\u6027 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u3002 \u8def\u7f51 \u8bc4\u4ef7 \uff1a \u652f\u6301 \u57fa\u4e8e \u8def\u7f51 \u6570\u636e \u7684 \u8def\u7f51 \u52a8\u6001 \u4eff\u771f \uff0c \u9884\u6d4b \u548c \u5206\u6790 \u4e0d\u540c \u4eff\u771f \u6d41\u91cf \u548c \u771f\u5b9e \u6d41\u91cf \u7684 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u3002","title":"\u6548\u679c \u8bc4\u4ef7"},{"location":"tutorials/#_5","text":"\u9053\u8def \u7f51\u7edc \u5bfc\u5165 \u4e0e \u7f16\u8f91 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u5bfc\u5165 \u516c\u5f00 \u9053\u8def \u5730\u56fe \u6216 \u521b\u5efa \u751f\u6210 \u9053\u8def \u7f51\u7edc \uff0c \u4ee5\u53ca \u7f16\u8f91 \u9053\u8def \u5c5e\u6027 \u548c \u8f66\u9053 \u4fe1\u606f \uff0c \u6784\u5efa \u5177\u4f53 \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u8f66\u8f86 \u8f68\u8ff9 \u751f\u6210 \u4e0e \u6a21\u62df \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4e3a \u8f66\u8f86 \u6307\u5b9a \u8d77\u70b9 \u548c \u76ee\u6807 \u4f4d\u7f6e \uff0c \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u8f68\u8ff9 \uff0c \u6a21\u62df \u8f66\u8f86 \u7684 \u884c\u9a76 \u8fc7\u7a0b \uff0c \u5e76 \u89c2\u5bdf \u8f66\u8f86 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u884c\u4e3a \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 \u4f18\u5316 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u914d\u7f6e \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \uff0c \u5e76 \u901a\u8fc7 \u4eff\u771f \u5b9e\u9a8c \u4f18\u5316 \u914d\u65f6 \u53c2\u6570 \uff0c \u4ee5 \u63d0\u9ad8 \u4ea4\u901a \u6d41\u7545 \u5ea6 \u548c \u51cf\u5c11 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u3002 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u6a21\u62df \u4e0e \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u6a21\u62df \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u573a\u666f \uff0c \u52a0\u5165 \u66f4 \u591a \u7684 \u8f66\u8f86 \u8fdb\u884c \u4eff\u771f \uff0c \u8fdb\u884c \u62e5\u5835 \u60c5\u51b5 \u7684 \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \uff0c \u5e76 \u8bc4\u4f30 \u4f18\u5316 \u63aa\u65bd \u7684 \u6548\u679c \u3002 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u8bc4\u4f30 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u8def\u53e3 \u8bc4\u4ef7 \u6307\u6807 \uff0c \u5206\u6790 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8f66\u5747 \u5ef6\u8bef \u3001 \u9971\u548c \u9971\u548c\u5ea6 \u3001 \u6392\u961f \u957f\u5ea6 \u7b49 \u6307\u6807 \uff0c \u8bc4\u4f30 \u8def\u53e3 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u573a\u666f \u5efa\u6a21 \u4e0e \u53ef\u89c6 \u53ef\u89c6\u5316 \u5c55\u793a \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u573a\u666f \u5efa\u6a21 \u5de5\u5177 \uff0c \u8fdb\u884c \u4ea4\u901a \u573a\u666f \u7684 \u5efa\u6a21 \u548c \u53ef\u89c6 \u53ef\u89c6\u5316 \u5c55\u793a \uff0c \u4ee5\u53ca \u8bbe\u8ba1 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u6f14\u793a \u754c\u9762 \uff0c \u5448\u73b0 \u4eff\u771f \u7ed3\u679c \u548c \u5b9e\u9a8c \u6548\u679c \u3002","title":"\u8bfe\u7a0b \u4e00 \uff1a \u4ea4\u901a \u4eff\u771f \u4e0e \u573a\u666f \u5efa\u6a21"},{"location":"tutorials/#_6","text":"\u4ea4\u901a \u573a\u666f \u611f\u77e5 \u4e0e \u5206\u6790 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u5229\u7528 \u7cfb\u7edf \u8fdb\u884c \u76ee\u6807 \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u548c \u518d \u8bc6\u522b \uff0c \u8fdb\u884c \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5206\u6790 \u548c \u7edf\u8ba1 \uff0c \u5bf9 \u4ea4\u901a \u8fdb\u884c \u6001\u52bf \u611f\u77e5 \uff0c \u4e3a \u540e\u9762 \u7684 \u7b97\u6cd5 \u5b9e\u73b0 \u63d0\u4f9b \u57fa\u7840 \u3002 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u9884\u6d4b \u6a21\u578b \u5efa\u7acb \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u4ea4\u901a \u6570\u636e \uff0c \u5efa\u7acb \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u9884\u6d4b \u6a21\u578b \uff0c \u4ee5 \u9884\u6d4b \u672a\u6765 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u60c5\u51b5 \uff0c \u5e76 \u8bc4\u4f30 \u6a21\u578b \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u548c \u6548\u679c \u3002 \u4ea4\u901a \u7f51\u7edc \u4ea4\u901a\u7f51 \u4ea4\u901a\u7f51\u7edc \u4f18\u5316 \u7b56\u7565 \u8bbe\u8ba1 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u4ea4\u901a \u7f51\u7edc \u4ea4\u901a\u7f51 \u4ea4\u901a\u7f51\u7edc \u6570\u636e \uff0c \u8bbe\u8ba1 \u4ea4\u901a \u7f51\u7edc \u4ea4\u901a\u7f51 \u4ea4\u901a\u7f51\u7edc \u4f18\u5316 \u7b56\u7565 \uff0c \u901a\u8fc7 \u8c03\u6574 \u8def\u7ebf \u89c4\u5212 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u7b49 \u53c2\u6570 \uff0c \u63d0\u5347 \u6574\u4f53 \u4ea4\u901a \u6548\u7387 \u3002 \u667a\u80fd \u4fe1\u53f7 \u63a7\u5236 \u7b97\u6cd5 \u5b9e\u73b0 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u4fe1\u53f7 \u63a7\u5236 \u529f\u80fd \uff0c \u5b9e\u73b0 \u667a\u80fd \u4fe1\u53f7 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \uff0c \u4f18\u5316 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u7684 \u914d\u65f6 \u65b9\u6848 \uff0c \u63d0\u9ad8 \u4ea4\u901a \u6d41\u7545 \u5ea6 \u548c \u51cf\u5c11 \u62e5\u5835 \u3002 \u4ea4\u901a \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4e0e \u5206\u6790 \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u4f7f\u7528 \u7cfb\u7edf \u63d0\u4f9b \u7684 \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \uff0c \u5bf9 \u4ea4\u901a \u6570\u636e \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u5206\u6790 \uff0c \u63a2\u7d22 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u62e5\u5835 \u72b6\u51b5 \u7b49 \u8d8b\u52bf \u548c \u89c4\u5f8b \u3002 \u4ea4\u901a \u573a\u666f \u4f18\u5316 \u4e0e \u4eff\u771f \u5b9e\u9a8c \u5b66\u751f \u5b66\u4e60 \u5982\u4f55 \u6839\u636e \u5b9e\u9645 \u4ea4\u901a \u95ee\u9898 \uff0c \u8fdb\u884c \u573a\u666f \u4f18\u5316 \u548c \u4eff\u771f \u5b9e\u9a8c \uff0c \u8bc4\u4f30 \u4f18\u5316 \u7b56\u7565 \u7684 \u6548\u679c \uff0c \u63d0\u51fa \u6539\u8fdb \u65b9\u6848 \u5e76 \u8fdb\u884c \u9a8c\u8bc1 \u3002","title":"\u8bfe\u7a0b \u4e8c \uff1a \u667a\u80fd \u4ea4\u901a \u7b97\u6cd5 \u4e0e \u4f18\u5316"},{"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 \u5bfc\u822a \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/#_7","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/#_8","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/#_9","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 \u4f53 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002","title":"\u5f00\u53d1\u8005"},{"location":"tutorials/#_10","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":"ue_pipeline/","text":"\u865a\u5e7b \u5f15\u64ce \u7ba1\u7ebf \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u9700\u8981 \u4fee\u6539 \u7ba1\u7ebf \u53ea\u6709 \u4fee\u6539 \u4e86 \u7ba1\u7ebf \u624d \u53ef\u4ee5 \u8ba9 SDF \uff0c SShairShadow \uff0c VirtualShadowMap \uff0c SelfShadowMap \u5b8c\u7f8e \u878d\u5408 \uff0c \u548c \u5f15\u64ce \u7684 \u539f\u88c5 \u903b\u8f91 \u5b8c\u7f8e \u5951\u5408 \u3002 \u4e3b\u8981 \u8fd8\u662f \u6027\u80fd \u95ee\u9898 \uff0c \u6bd4\u5982 \u6bd4\u5982\u8bf4 \u5e38\u89c1 \u7684 \u5904\u7406 \u540e\u5904\u7406 \u5361\u901a \u6e32\u67d3 \u4e3a\u4e86 \u5904\u7406 \u540e\u5904\u7406 \u9636\u6bb5 \u62ff\u5230 \u66f4 \u591a \u53c2\u6570 \uff0c \u5411 Gbuffer \u91cc \u4f20\u503c \uff0c Shading Mode \u5c31 \u5f97 \u7528 Default Lit \uff0c \u5728 \u5904\u7406 \u540e\u5904\u7406 \u9636\u6bb5 \u53c8 \u5f97 \u628a PBR \u5149\u7167 \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u7528\u5361 \u6e32 \u6548\u679c \u518d \u8986\u76d6 \u6389 \uff0c \u4e00\u5806 \u65e0 \u610f\u4e49 \u7684 \u6027\u80fd \u5f00\u9500 \uff0c \u53ea\u80fd \u8bf4 \u505c\u7559 \u5728 demo \u9636\u6bb5 \uff0c \u6216\u8005 \u5f53 \u6750\u8d28 \u7ec3\u4e60 \u3002","title":"Ue pipeline"},{"location":"ue_pipeline/#_1","text":"","title":"\u865a\u5e7b \u5f15\u64ce \u7ba1\u7ebf"},{"location":"ue_pipeline/#_2","text":"\u53ea\u6709 \u4fee\u6539 \u4e86 \u7ba1\u7ebf \u624d \u53ef\u4ee5 \u8ba9 SDF \uff0c SShairShadow \uff0c VirtualShadowMap \uff0c SelfShadowMap \u5b8c\u7f8e \u878d\u5408 \uff0c \u548c \u5f15\u64ce \u7684 \u539f\u88c5 \u903b\u8f91 \u5b8c\u7f8e \u5951\u5408 \u3002 \u4e3b\u8981 \u8fd8\u662f \u6027\u80fd \u95ee\u9898 \uff0c \u6bd4\u5982 \u6bd4\u5982\u8bf4 \u5e38\u89c1 \u7684 \u5904\u7406 \u540e\u5904\u7406 \u5361\u901a \u6e32\u67d3 \u4e3a\u4e86 \u5904\u7406 \u540e\u5904\u7406 \u9636\u6bb5 \u62ff\u5230 \u66f4 \u591a \u53c2\u6570 \uff0c \u5411 Gbuffer \u91cc \u4f20\u503c \uff0c Shading Mode \u5c31 \u5f97 \u7528 Default Lit \uff0c \u5728 \u5904\u7406 \u540e\u5904\u7406 \u9636\u6bb5 \u53c8 \u5f97 \u628a PBR \u5149\u7167 \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u7528\u5361 \u6e32 \u6548\u679c \u518d \u8986\u76d6 \u6389 \uff0c \u4e00\u5806 \u65e0 \u610f\u4e49 \u7684 \u6027\u80fd \u5f00\u9500 \uff0c \u53ea\u80fd \u8bf4 \u505c\u7559 \u5728 demo \u9636\u6bb5 \uff0c \u6216\u8005 \u5f53 \u6750\u8d28 \u7ec3\u4e60 \u3002","title":"\u4e3a\u4ec0\u4e48 \u9700\u8981 \u4fee\u6539 \u7ba1\u7ebf"},{"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/demo_models/","text":"\u793a\u4f8b \u6a21\u578b Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u4eff\u771f \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":"Demo models"},{"location":"OpenRadioss/demo_models/#_1","text":"Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u4eff\u771f \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 \u4eff\u771f \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 \u4eff\u771f \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u4eff\u771f \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 \u4eff\u771f \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 \u4eff\u771f \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u4eff\u771f \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 \u4eff\u771f \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":"use OpenRadioss windows"},{"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 \u4eff\u771f \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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":"chrono/manual_vehicle/","text":"Chrono : : Vehicle \u53c2\u8003 \u624b\u518c \u53c2\u8003\u624b\u518c \u5b89\u88c5 \u5e76 \u6784\u5efa Chrono : : Vehicle \u8f66\u8f86 \u5efa\u6a21 \u4e0e \u4eff\u771f \u6982\u8ff0 \u53c2\u8003 \u6846\u67b6 \u6a21\u62df \u5faa\u73af \u8f66\u8f86 \u5e95\u76d8 \u8f6e\u5f0f \u8f66\u8f86 \u60ac\u6302 \u6a21\u578b \u8f6c\u5411 \u673a\u6784 \u6a21\u578b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u8f6e\u80ce \u6a21\u578b \u6d4b\u8bd5 \u53f0\u67b6 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u9a71\u52a8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u6a21\u578b \u5176\u4ed6 \u6587\u6863 \u9875\u9762 Chrono Core \u7528\u6237 \u624b\u518c \u7528\u6237\u624b\u518c PyChrono Chrono : : Vehicle \u6559\u7a0b","title":"Chrono : : Vehicle \u53c2\u8003\u624b\u518c"},{"location":"chrono/manual_vehicle/#chronovehicle","text":"\u5b89\u88c5 \u5e76 \u6784\u5efa Chrono : : Vehicle \u8f66\u8f86 \u5efa\u6a21 \u4e0e \u4eff\u771f \u6982\u8ff0 \u53c2\u8003 \u6846\u67b6 \u6a21\u62df \u5faa\u73af \u8f66\u8f86 \u5e95\u76d8 \u8f6e\u5f0f \u8f66\u8f86 \u60ac\u6302 \u6a21\u578b \u8f6c\u5411 \u673a\u6784 \u6a21\u578b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u8f6e\u80ce \u6a21\u578b \u6d4b\u8bd5 \u53f0\u67b6 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u9a71\u52a8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u6a21\u578b","title":"Chrono : : Vehicle \u53c2\u8003\u624b\u518c"},{"location":"chrono/manual_vehicle/#_1","text":"Chrono Core \u7528\u6237 \u624b\u518c \u7528\u6237\u624b\u518c PyChrono Chrono : : Vehicle \u6559\u7a0b","title":"\u5176\u4ed6 \u6587\u6863 \u9875\u9762"},{"location":"chrono/module_vehicle_installation/","text":"\u5b89\u88c5 VEHICLE \u6a21\u5757 \u8fd9\u662f \u4e00\u4e2a \u53ef \u9009 \u6a21\u5757 \uff0c \u53ef \u5728 Chrono \u5185 \u5b9e\u73b0 \u57fa\u4e8e \u6a21\u677f \u7684 \u5730\u9762 \u8f66\u8f86 \u5efa\u6a21 \u548c \u6a21\u62df \u3002 \u9605\u8bfb \u6a21\u5757 \u4ecb\u7ecd \uff0c \u4e86\u89e3 Chrono \u9879\u76ee \u6a21\u5757 \u6a21\u5757\u5316 \u7684 \u6280\u672f \u80cc\u666f \u3002 \u7279\u70b9 VEHICLE \u6a21\u5757 \u5141\u8bb8 \u7528\u6237 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u5efa\u6a21 \u548c \u6a21\u62df \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u53c2\u8003 \u624b\u518c \u53c2\u8003\u624b\u518c \u7684 Chrono : : Vehicle \u90e8\u5206 \u3002 \u4f9d\u8d56 \u9879 \u6b64 \u6a21\u5757 \u6ca1\u6709 \u5176\u4ed6 \u4f9d\u8d56 \u9879 \u4f7f\u7528 CRGTerrain \u529f\u80fd \u9700\u8981 OpenCRG \u5e93 \uff08 \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7528\u4e8e \u63cf\u8ff0 \u8def\u9762 \u7684 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 \u5b83 \u6700\u521d \u662f \u4e3a\u4e86 \u5b58\u50a8 \u8def\u9762 \u626b\u63cf \u7684 \u7cbe\u5ea6 \u9ad8\u7cbe\u5ea6 \u9ad8\u7a0b \u6570\u636e \u800c \u5f00\u53d1 \u7684 \u3002 \u8fd9\u4e9b \u6570\u636e \u4e3b\u8981 \u7528\u4e8e \u8f6e\u80ce \u3001 \u632f\u52a8 \u6216 \u9a7e\u9a76 \u6a21\u62df \u3002 \u7cbe\u786e \u7684 \u9ad8\u7a0b \u6570\u636e \u53ef\u4ee5 \u5bf9 \u8f66\u8f86 \u90e8\u4ef6 \u6216 \u6574\u4e2a \u8f66\u8f86 \u8fdb\u884c \u903c\u771f \u7684 \u8010\u4e45 \u8010\u4e45\u6027 \u6a21\u62df \u3002 \uff09 \u3002 \u5bf9\u4e8e \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \uff0c \u5efa\u8bae \u542f\u7528 \u5e76 \u5b89\u88c5 Chrono : : VSG \u6a21\u5757 \u548c / \u6216 Chrono : : Irrlicht \u6a21\u5757 \u3002 \u6784\u5efa \u548c \u5b89\u88c5 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 Chrono : : Vehicle \u5305\u542b \u4f7f\u7528 OpenCRG \u89c4\u8303 \u6307\u5b9a \u5730\u5f62 \u7684 \u9009\u9879 \u3002 \u652f\u6301 \u53ef\u9009 \u6b64\u53ef\u9009 \u529f\u80fd \u9700\u8981 OpenCRG \u5e93 \u3002 \u6784\u5efa \u548c \u5b89\u88c5 OpenCRG \u5e93 \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u662f \u4f7f\u7528 Chrono \u53d1\u884c \u53d1\u884c\u7248 \u63d0\u4f9b \u7684 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u811a\u672c \u3002 \u8fd9\u4e9b \u811a\u672c \uff08 buildOpenCRG . bat \u5206\u522b buildOpenCRG . sh \u7528\u4e8e Windows \u548c Linux \uff09 \u4f4d\u4e8e Chrono \u5b58\u50a8 \u5e93 contrib / build - scripts / opencrg \u76ee\u5f55 \u4e2d \u3002 \u590d\u5236 \u9002\u5f53 \u7684 \u811a\u672c \u5e76 \u653e\u7f6e \u5728 \u4efb\u610f \u4e34\u65f6 \u76ee\u5f55 \u4e2d \u3002 \u6309\u7167 \u811a\u672c \u9876\u90e8 \u6ce8\u91ca \u4e2d \u7684 \u8bf4\u660e \u7f16\u8f91 \u811a\u672c \u3002 \u4ece \u811a\u672c \u526f\u672c \u7684 \u4f4d\u7f6e \u8fd0\u884c \u811a\u672c \uff08 . \\ buildOpenCRG . bat \u6216 sh buildOpenCRG . sh \uff0c \u89c6 \u60c5\u51b5 \u800c\u5b9a \uff09 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u4e34\u65f6 \u76ee\u5f55 \uff0c \u6240\u6709 \u6e90 \u5b58\u50a8 \u5e93 \u90fd \u5c06 \u88ab \u514b\u9686 \u5230 \u8be5 \u76ee\u5f55 \uff0c \u4ee5\u53ca \u4e00\u7ec4 \u76ee\u5f55 \uff0c \u5404\u4e2a URDF \u4f9d\u8d56 \u9879 \u5c06 \u5728 \u5176\u4e2d \u6784\u5efa \u3002 \u5b89\u88c5 \u76ee\u5f55 \u5c06 \u5305\u542b \u914d\u7f6e Chrono : : Vehicle \u4e0e OpenCRG \u652f\u6301 \u6240 \u9700 \u7684 \u5fc5\u8981 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c \u5e93 \u6587\u4ef6 \u3002 \u642d\u5efa \u8bf4\u660e \u91cd\u590d \u5b8c\u6574 \u5b89\u88c5 \u7684 \u8bf4\u660e \uff0c \u4f46\u662f \u5f53 \u60a8 \u770b\u5230 CMake \u7a97\u53e3 \u65f6 \uff0c \u5fc5\u987b \u6dfb\u52a0 \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5c06 \u5176 \u8bbe\u7f6e \u4e3a ENABLE _ MODULE _ VEHICLE \u201c \u5f00 \u201d \uff0c \u7136\u540e \u6309 \u201c \u914d\u7f6e \u201d \uff08 \u5237\u65b0 \u53d8\u91cf \u5217\u8868 \uff09 \u518d\u6b21 \u6309 \u201c \u914d\u7f6e \u201d \uff0c \u7136\u540e \u6309 \u201c \u751f\u6210 \u201d \uff0c \u5e76 \u6309\u7167 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u542f\u7528 OpenCRG \u652f\u6301 ( ENABLE _ OPENCRG ) \uff0c \u7cfb\u7edf \u5c06 \u63d0\u793a \u60a8 \u63d0\u4f9b OpenCRG \u672c\u5730 \u5b89\u88c5 \u7684 \u4f4d\u7f6e \uff0c \u5305\u62ec \u6807\u5934 \u3001 \u5e93 \u7684 \u4f4d\u7f6e \u4ee5\u53ca \uff08 \u4ec5\u9650 Windows \uff09 OpenCRG DLL \u7684 \u4f4d\u7f6e \u3002 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u67e5\u9605 \u53c2\u8003 \u624b\u518c \u53c2\u8003\u624b\u518c \u3002 \u67e5\u770b \u6b64 \u6a21\u5757 \u7684 API \u90e8\u5206 \u4ee5 \u83b7\u53d6 \u6709\u5173 \u7c7b \u548c \u51fd\u6570 \u7684 \u6587\u6863 \u3002 \u67e5\u770b \u6f14\u793a \u7684 C++ \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6765 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u6a21\u5757 \u7684 \u529f\u80fd \u3002","title":"\u5b89\u88c5 VEHICLE \u6a21\u5757"},{"location":"chrono/module_vehicle_installation/#vehicle","text":"\u8fd9\u662f \u4e00\u4e2a \u53ef \u9009 \u6a21\u5757 \uff0c \u53ef \u5728 Chrono \u5185 \u5b9e\u73b0 \u57fa\u4e8e \u6a21\u677f \u7684 \u5730\u9762 \u8f66\u8f86 \u5efa\u6a21 \u548c \u6a21\u62df \u3002 \u9605\u8bfb \u6a21\u5757 \u4ecb\u7ecd \uff0c \u4e86\u89e3 Chrono \u9879\u76ee \u6a21\u5757 \u6a21\u5757\u5316 \u7684 \u6280\u672f \u80cc\u666f \u3002","title":"\u5b89\u88c5 VEHICLE \u6a21\u5757"},{"location":"chrono/module_vehicle_installation/#_1","text":"VEHICLE \u6a21\u5757 \u5141\u8bb8 \u7528\u6237 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u5efa\u6a21 \u548c \u6a21\u62df \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u53c2\u8003 \u624b\u518c \u53c2\u8003\u624b\u518c \u7684 Chrono : : Vehicle \u90e8\u5206 \u3002","title":"\u7279\u70b9"},{"location":"chrono/module_vehicle_installation/#_2","text":"\u6b64 \u6a21\u5757 \u6ca1\u6709 \u5176\u4ed6 \u4f9d\u8d56 \u9879 \u4f7f\u7528 CRGTerrain \u529f\u80fd \u9700\u8981 OpenCRG \u5e93 \uff08 \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7528\u4e8e \u63cf\u8ff0 \u8def\u9762 \u7684 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 \u5b83 \u6700\u521d \u662f \u4e3a\u4e86 \u5b58\u50a8 \u8def\u9762 \u626b\u63cf \u7684 \u7cbe\u5ea6 \u9ad8\u7cbe\u5ea6 \u9ad8\u7a0b \u6570\u636e \u800c \u5f00\u53d1 \u7684 \u3002 \u8fd9\u4e9b \u6570\u636e \u4e3b\u8981 \u7528\u4e8e \u8f6e\u80ce \u3001 \u632f\u52a8 \u6216 \u9a7e\u9a76 \u6a21\u62df \u3002 \u7cbe\u786e \u7684 \u9ad8\u7a0b \u6570\u636e \u53ef\u4ee5 \u5bf9 \u8f66\u8f86 \u90e8\u4ef6 \u6216 \u6574\u4e2a \u8f66\u8f86 \u8fdb\u884c \u903c\u771f \u7684 \u8010\u4e45 \u8010\u4e45\u6027 \u6a21\u62df \u3002 \uff09 \u3002 \u5bf9\u4e8e \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \uff0c \u5efa\u8bae \u542f\u7528 \u5e76 \u5b89\u88c5 Chrono : : VSG \u6a21\u5757 \u548c / \u6216 Chrono : : Irrlicht \u6a21\u5757 \u3002","title":"\u4f9d\u8d56 \u9879"},{"location":"chrono/module_vehicle_installation/#_3","text":"Chrono : : Vehicle \u5305\u542b \u4f7f\u7528 OpenCRG \u89c4\u8303 \u6307\u5b9a \u5730\u5f62 \u7684 \u9009\u9879 \u3002 \u652f\u6301 \u53ef\u9009 \u6b64\u53ef\u9009 \u529f\u80fd \u9700\u8981 OpenCRG \u5e93 \u3002 \u6784\u5efa \u548c \u5b89\u88c5 OpenCRG \u5e93 \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u662f \u4f7f\u7528 Chrono \u53d1\u884c \u53d1\u884c\u7248 \u63d0\u4f9b \u7684 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u811a\u672c \u3002 \u8fd9\u4e9b \u811a\u672c \uff08 buildOpenCRG . bat \u5206\u522b buildOpenCRG . sh \u7528\u4e8e Windows \u548c Linux \uff09 \u4f4d\u4e8e Chrono \u5b58\u50a8 \u5e93 contrib / build - scripts / opencrg \u76ee\u5f55 \u4e2d \u3002 \u590d\u5236 \u9002\u5f53 \u7684 \u811a\u672c \u5e76 \u653e\u7f6e \u5728 \u4efb\u610f \u4e34\u65f6 \u76ee\u5f55 \u4e2d \u3002 \u6309\u7167 \u811a\u672c \u9876\u90e8 \u6ce8\u91ca \u4e2d \u7684 \u8bf4\u660e \u7f16\u8f91 \u811a\u672c \u3002 \u4ece \u811a\u672c \u526f\u672c \u7684 \u4f4d\u7f6e \u8fd0\u884c \u811a\u672c \uff08 . \\ buildOpenCRG . bat \u6216 sh buildOpenCRG . sh \uff0c \u89c6 \u60c5\u51b5 \u800c\u5b9a \uff09 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u4e34\u65f6 \u76ee\u5f55 \uff0c \u6240\u6709 \u6e90 \u5b58\u50a8 \u5e93 \u90fd \u5c06 \u88ab \u514b\u9686 \u5230 \u8be5 \u76ee\u5f55 \uff0c \u4ee5\u53ca \u4e00\u7ec4 \u76ee\u5f55 \uff0c \u5404\u4e2a URDF \u4f9d\u8d56 \u9879 \u5c06 \u5728 \u5176\u4e2d \u6784\u5efa \u3002 \u5b89\u88c5 \u76ee\u5f55 \u5c06 \u5305\u542b \u914d\u7f6e Chrono : : Vehicle \u4e0e OpenCRG \u652f\u6301 \u6240 \u9700 \u7684 \u5fc5\u8981 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c \u5e93 \u6587\u4ef6 \u3002","title":"\u6784\u5efa \u548c \u5b89\u88c5 \u5148\u51b3\u6761\u4ef6"},{"location":"chrono/module_vehicle_installation/#_4","text":"\u91cd\u590d \u5b8c\u6574 \u5b89\u88c5 \u7684 \u8bf4\u660e \uff0c \u4f46\u662f \u5f53 \u60a8 \u770b\u5230 CMake \u7a97\u53e3 \u65f6 \uff0c \u5fc5\u987b \u6dfb\u52a0 \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5c06 \u5176 \u8bbe\u7f6e \u4e3a ENABLE _ MODULE _ VEHICLE \u201c \u5f00 \u201d \uff0c \u7136\u540e \u6309 \u201c \u914d\u7f6e \u201d \uff08 \u5237\u65b0 \u53d8\u91cf \u5217\u8868 \uff09 \u518d\u6b21 \u6309 \u201c \u914d\u7f6e \u201d \uff0c \u7136\u540e \u6309 \u201c \u751f\u6210 \u201d \uff0c \u5e76 \u6309\u7167 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u542f\u7528 OpenCRG \u652f\u6301 ( ENABLE _ OPENCRG ) \uff0c \u7cfb\u7edf \u5c06 \u63d0\u793a \u60a8 \u63d0\u4f9b OpenCRG \u672c\u5730 \u5b89\u88c5 \u7684 \u4f4d\u7f6e \uff0c \u5305\u62ec \u6807\u5934 \u3001 \u5e93 \u7684 \u4f4d\u7f6e \u4ee5\u53ca \uff08 \u4ec5\u9650 Windows \uff09 OpenCRG DLL \u7684 \u4f4d\u7f6e \u3002","title":"\u642d\u5efa \u8bf4\u660e"},{"location":"chrono/module_vehicle_installation/#_5","text":"\u67e5\u9605 \u53c2\u8003 \u624b\u518c \u53c2\u8003\u624b\u518c \u3002 \u67e5\u770b \u6b64 \u6a21\u5757 \u7684 API \u90e8\u5206 \u4ee5 \u83b7\u53d6 \u6709\u5173 \u7c7b \u548c \u51fd\u6570 \u7684 \u6587\u6863 \u3002 \u67e5\u770b \u6f14\u793a \u7684 C++ \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6765 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u6a21\u5757 \u7684 \u529f\u80fd \u3002","title":"\u5982\u4f55 \u4f7f\u7528 \u5b83"},{"location":"chrono/vehicle_chassis/","text":"\u8f66\u8f86 \u5e95\u76d8 \u4efb\u4f55 \u8f66\u8f86 \u7cfb\u7edf \u90fd \u5fc5\u987b \u5305\u542b \u5e95\u76d8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u3002 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5747 \u5b9a\u4e49 \u4e3a \u5e95\u76d8 \u53c2\u8003 \u53c2\u8003\u7cfb \u3002 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u5747 \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u5e95\u76d8 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u76ee\u524d \u4ec5 \u63d0\u4f9b \u4e00\u4e2a \u5e95\u76d8 \u6a21\u677f \uff1a ChRigidChassis \uff0c \u7531 \u5355\u4e2a \u521a\u4f53 \u7ec4\u6210 \u3002 \u4e3a\u4e86 \u5bf9 \u5177\u6709 \u4e0d\u540c \u62d3\u6251 \u7ed3\u6784 \uff08 \u4f8b\u5982 \u94f0\u63a5 \u94f0\u63a5\u5f0f \u5e95\u76d8 \uff09 \u3001 \u5177\u6709 \u626d\u8f6c \u67d4\u987a \u6027 \u7684 \u5e95\u76d8 \u4ee5\u53ca \u62d6\u8f66 \u7cfb\u7edf \u8fdb\u884c \u5efa\u6a21 \uff0c Chrono : : Vehicle \u8fd8 \u5305\u62ec \u6240\u8c13 \u7684 \u201c \u540e \u5e95\u76d8 \u201d \uff08 \u57fa\u7c7b ChChassisRear \uff0c \u521a\u4f53 \u6a21\u677f ChRigidChassisRear \uff09 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u4e13\u95e8 \u7684 \u201c \u5e95\u76d8 \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u201d \u8fde\u63a5 \u5230 \u524d \u5e95\u76d8 \u3002 \u6709 \u4ee5\u4e0b \u4e09\u79cd \u7c7b\u578b \u7684 \u5e95\u76d8 \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a ChChassisConnectorArticulated \u5141\u8bb8 \u5c06 \u524d\u540e \u5e95\u76d8 \u4e0e \u9a71\u52a8 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \uff0c \u8be5 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u7531 \u8f6c\u5411 \u9a71\u52a8 \u9a71\u52a8\u5668 \u8f93\u5165 \u63a7\u5236 ChChassisConnectorTorsion \u5141\u8bb8 \u4f7f\u7528 \u5177\u6709 \u6307\u5b9a \u626d\u8f6c \u521a\u5ea6 \u7684 \u7eb5\u5411 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u8fde\u63a5 \u524d\u540e \u5e95\u76d8 ChChassisConnectorHitch \u6a21\u62df \u62d6\u8f66 \u6302\u94a9 \u8fde\u63a5 \uff08 \u4f7f\u7528 \u7403\u5f62 \u63a5\u5934 \uff09","title":"\u8f66\u8f86 \u5e95\u76d8"},{"location":"chrono/vehicle_chassis/#_1","text":"\u4efb\u4f55 \u8f66\u8f86 \u7cfb\u7edf \u90fd \u5fc5\u987b \u5305\u542b \u5e95\u76d8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u3002 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5747 \u5b9a\u4e49 \u4e3a \u5e95\u76d8 \u53c2\u8003 \u53c2\u8003\u7cfb \u3002 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u5747 \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u5e95\u76d8 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u76ee\u524d \u4ec5 \u63d0\u4f9b \u4e00\u4e2a \u5e95\u76d8 \u6a21\u677f \uff1a ChRigidChassis \uff0c \u7531 \u5355\u4e2a \u521a\u4f53 \u7ec4\u6210 \u3002 \u4e3a\u4e86 \u5bf9 \u5177\u6709 \u4e0d\u540c \u62d3\u6251 \u7ed3\u6784 \uff08 \u4f8b\u5982 \u94f0\u63a5 \u94f0\u63a5\u5f0f \u5e95\u76d8 \uff09 \u3001 \u5177\u6709 \u626d\u8f6c \u67d4\u987a \u6027 \u7684 \u5e95\u76d8 \u4ee5\u53ca \u62d6\u8f66 \u7cfb\u7edf \u8fdb\u884c \u5efa\u6a21 \uff0c Chrono : : Vehicle \u8fd8 \u5305\u62ec \u6240\u8c13 \u7684 \u201c \u540e \u5e95\u76d8 \u201d \uff08 \u57fa\u7c7b ChChassisRear \uff0c \u521a\u4f53 \u6a21\u677f ChRigidChassisRear \uff09 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u4e13\u95e8 \u7684 \u201c \u5e95\u76d8 \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u201d \u8fde\u63a5 \u5230 \u524d \u5e95\u76d8 \u3002 \u6709 \u4ee5\u4e0b \u4e09\u79cd \u7c7b\u578b \u7684 \u5e95\u76d8 \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a ChChassisConnectorArticulated \u5141\u8bb8 \u5c06 \u524d\u540e \u5e95\u76d8 \u4e0e \u9a71\u52a8 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \uff0c \u8be5 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u7531 \u8f6c\u5411 \u9a71\u52a8 \u9a71\u52a8\u5668 \u8f93\u5165 \u63a7\u5236 ChChassisConnectorTorsion \u5141\u8bb8 \u4f7f\u7528 \u5177\u6709 \u6307\u5b9a \u626d\u8f6c \u521a\u5ea6 \u7684 \u7eb5\u5411 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u8fde\u63a5 \u524d\u540e \u5e95\u76d8 ChChassisConnectorHitch \u6a21\u62df \u62d6\u8f66 \u6302\u94a9 \u8fde\u63a5 \uff08 \u4f7f\u7528 \u7403\u5f62 \u63a5\u5934 \uff09","title":"\u8f66\u8f86 \u5e95\u76d8"},{"location":"chrono/vehicle_driver/","text":"\u9a71\u52a8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u57fa\u4e8e \u6570\u636e \uff08 \u5f00\u73af \uff09 \u7684 \u9a71\u52a8 \u9a71\u52a8\u5668 \u95ed\u73af \u9a71\u52a8 \u6a21\u578b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \uff08 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5239\u8f66 \uff09 \u7531 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u63d0\u4f9b \uff0c Chrono : : Vehicle \u4e2d \u63d0\u4f9b \u9009\u9879 \uff0c \u5305\u62ec \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u3001 \u6570\u636e \u9a71\u52a8 \u548c \u95ed\u73af \u5f0f \uff08 \u4f8b\u5982 \u57fa\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8def\u5f84 \u8ddf\u8e2a \uff09 \u3002 \u9a71\u52a8 \u7cfb\u7edf \u7684 \u57fa\u7c7b ChDriver \u5bf9 \u9a71\u52a8 \u7cfb\u7edf \u6a21\u677f \u63d0\u51fa \u4e86 \u6700\u4f4e \u8981\u6c42 \uff0c \u7279\u522b \u662f \u8fd4\u56de \u6cb9\u95e8 \u8f93\u5165 \u7684 \u80fd\u529b \uff08 \u5728 [ 0 , 1 ] \u8303\u56f4 \uff09 \u3001 \u8f6c\u5411 \u8f93\u5165 \uff08 \u6807\u51c6 \u6807\u51c6\u5316 [ \u2212 1 , + 1 ] \u8303\u56f4 \uff0c \u8d1f\u503c \u8868\u793a \u5de6\u8f6c \u5411\u5de6\u8f6c \u5411 \uff09 \uff0c \u4ee5\u53ca \u5236\u52a8 \u8f93\u5165 \uff08 \u5728 [ 0 , 1 ] \u8303\u56f4 \uff09 \u3002 \u6b64\u5916 \uff0c \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u53ef\u4ee5 \u901a\u8fc7 \u5176 Synchronize \u65b9\u6cd5 \u4ece \u4efb\u4f55 \u5176\u4ed6 \u7cfb\u7edf \u63a5\u6536 \u4fe1\u606f \uff08 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u72b6\u6001 \uff09 \uff0c \u5e76\u4e14 \u53ef\u80fd \u5177\u6709 \u5185\u90e8 \u52a8\u6001 \uff08 \u5728 \u5176 Advance \u65b9\u6cd5 \u4e2d \u5b9e\u73b0 \uff09 \u3002 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u7684 \u7279\u5b9a \u6a21\u677f \u53ef\u4ee5 \u6269\u5c55 \u751f\u6210 \u7684 \u8f66\u8f86 \u8f93\u5165 \u96c6 \uff0c \u4f8b\u5982 \u5305\u62ec \u5f53\u524d \u9009\u62e9 \u7684 \u624b\u52a8 \u53d8\u901f \u53d8\u901f\u5668 \u6863\u4f4d \u3001 \u542f\u7528 / \u7981\u7528 \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7684 \u4ea4\u53c9 \u9a71\u52a8 \u80fd\u529b \u7b49 \u3002 Chrono : : Vehicle \u5305\u542b \u591a\u4e2a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u6a21\u677f \u3002 \u5bf9\u4e8e \u4ee5\u8f6f \u5b9e\u65f6 \u65b9\u5f0f \u8fd0\u884c \u7684 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u6a21\u62df \uff0c \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u6a21\u677f \uff0c \u8be5 \u7cfb\u7edf \u6839\u636e \u7528\u6237 \u63a7\u5236 \uff08 \u952e\u76d8 \u548c \u9f20\u6807 \u6216 \u6e38\u620f \u63a7\u5236 \u63a7\u5236\u5668 \uff09 \u4ea7\u751f \u8f66\u8f86 \u8f93\u5165 \u3002 \u5bf9\u4e8e \u5b9e\u9a8c \u6a21\u62df \u8bbe\u8ba1 \uff0c \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u4e8e \u901a\u8fc7 \u6587\u672c \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u63d0\u4f9b \u7684 \u8f93\u5165 \u7684 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u6a21\u677f \uff0c \u5176\u4e2d \u8f66\u8f86 \u8f93\u5165 \u901a\u8fc7 \u7ebf\u6027 \u63d2\u503c \u7ebf\u6027\u63d2\u503c \u83b7\u5f97 \u3002 \u6b64\u7c7b \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u4e5f \u53ef\u4ee5 \u901a\u8fc7 \u4ea4\u4e92 \u8fd0\u884c \u671f\u95f4 \u6536\u96c6 \u7684 \u6570\u636e \u81ea\u52a8 \u751f\u6210 \u3002 \u6700\u540e \uff0c Chrono : : Vehicle \u5305\u542b \u51e0\u4e2a \u95ed\u73af \u9a71\u52a8 \u7cfb\u7edf \u6a21\u578b \uff0c \u57fa\u4e8e \u5bf9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5e95\u5c42 \u652f\u6301 \u3002 \u8fd9\u4e9b \u6a21\u578b \u5305\u62ec \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u53ef \u540c\u65f6 \u8c03\u8282 \u6cb9\u95e8 \u548c \u5236\u52a8 \u8f93\u5165 \u4ee5 \u4fdd\u6301 \u6052\u5b9a \u7684 \u8f66\u901f \uff09 \u548c \u8def\u5f84 \u8ddf\u968f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u540e\u8005 \u53ef \u8c03\u6574 \u8f6c\u5411 \u8f93\u5165 \uff0c \u4f7f \u8f66\u8f86 \u9075\u5faa \u7528\u6237 \u5b9a\u4e49 \u7684 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u8def\u5f84 \u3002 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f ChInteractiveDriverIRR \uff08 \u7528\u4e8e \u57fa\u4e8e Irrlicht \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7cfb\u7edf \uff09 \u548c ChInteractiveDriverVSG \uff08 \u7528\u4e8e \u57fa\u4e8e VSG \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7cfb\u7edf \uff09 \u53ef\u4ee5 \u901a\u8fc7 \u7528\u6237 \u8f93\u5165 \u63a7\u5236 \uff08 \u8f6c\u5411 / \u52a0\u901f / \u5236\u52a8 \uff09 \u6a21\u62df \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e \u5404\u81ea \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7cfb\u7edf \u7684 \u952e\u76d8 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u4e8b\u4ef6 \u5904\u7406 \u7a0b\u5e8f \u5904\u7406\u7a0b\u5e8f \u3002 \u8be5 \u9a71\u52a8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u578b \u7684 \u5176\u4ed6 \u7279\u6027 \u5305\u62ec \uff1a \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u63a7\u5236 \u63a7\u5236\u5668 \u652f\u6301 \u80fd\u591f \u9501\u5b9a / \u89e3\u9501 \u9a71\u52a8 \u9a71\u52a8\u5668 \u8f93\u5165 \u4e3a \u5176 \u5f53\u524d \u503c \uff08 \u901a\u8fc7 \u952e \u63a7\u5236 J \uff09 \u8bb0\u5f55 \u548c \u56de\u653e \u7528\u6237 \u8f93\u5165 \u7684 \u80fd\u529b \uff08 \u4f7f\u7528 \u5d4c\u5165 \u5d4c\u5165\u5f0f \u57fa\u4e8e \u6570\u636e \u7684 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1b \u4e0b\u6587 \u89c1\u4e0b\u6587 \uff09 \u952e\u76d8 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u952e A \u589e\u52a0 \u5de6\u8f6c \u65b9\u5411 \u65b9\u5411\u76d8 \u89d2\u5ea6 \u952e D \u589e\u52a0 \u53f3\u8f6c \u65b9\u5411 \u65b9\u5411\u76d8 \u89d2\u5ea6 \u952e W \u52a0\u901f \u952e S \u51cf\u901f \u6cb9\u95e8 \u548c \u5239\u8f66 \u63a7\u5236 \u662f \u8026\u5408 \u7684 \uff0c \u5373 \u52a0\u901f \u65f6 \u9996\u5148 \u5c06 \u5239\u8f66 \u964d\u81f3 \u96f6 \uff0c \u7136\u540e \u518d \u589e\u52a0 \u6cb9\u95e8 \u8f93\u5165 \uff08 \u51cf\u901f \u51cf\u901f\u65f6 \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \uff09 \u3002 \u63a7\u5236 \u9a71\u52a8 \u63a7\u5236\u5668 \u63a7\u5236\u5668\u9a71\u52a8 \u7a0b\u5e8f \u73b0\u4ee3 \u6a21\u62df \u6a21\u62df\u5668 \u901a\u5e38 \u6709 \u591a\u4e2a \uff08 USB \uff09 \u8bbe\u5907 \u7528\u4e8e \u63a7\u5236 \u6c7d\u8f66 \u4e2d \u7684 \u6240\u6709 \u4e0d\u540c \u63a7\u5236 \u5143\u4ef6 \u63a7\u5236\u5143\u4ef6 \u3002 \u5b83\u4eec \u914d\u6709 \u8e0f\u677f \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 H \u578b \u6362\u6321 \u5668 \u3001 \u987a\u5e8f \u6362\u6321 \u5668 \u3001 \u624b\u5239 \u548c \u6309\u94ae \u76d2 \uff08 \u5e26\u6709 \u5927\u91cf \u6309\u94ae \u6765 \u66f4\u6539 \u8f66\u8f7d \u7cfb\u7edf \uff09 \u7684 \u8bbe\u5907 \u3002 Chrono \u652f\u6301 \u8fd9 \u4e00\u70b9 \uff0c \u56e0\u4e3a \u5b83 \u80fd\u591f \u5c06 \u63a7\u5236 \u63a7\u5236\u5668 \u8f74 \u548c \u6309\u94ae \u5206\u914d \u7ed9 \u8fde\u63a5 \u7684 \u591a\u4e2a \u8bbe\u5907 \u3002 \u8f74 \u4e5f \u53ef\u4ee5 \u6821\u51c6 \uff0c \u8bbe\u7f6e \u8be5 \u8f74 \u7684 \u6700\u5c0f \u548c \u6700\u5927 \uff08 \u539f\u59cb \uff09 \u503c \u4ee5\u53ca \u9884\u671f \uff08 \u7f29\u653e \uff09 \u8f93\u51fa \u503c \u3002 \u6620\u5c04 \u548c \u6821\u51c6 \u662f \u4f7f\u7528 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u201c controller . json \u201d \u6587\u4ef6 \u5b8c\u6210 \u7684 \uff0c data / vehicles \u8be5 \u6587\u4ef6 \u5141\u8bb8 \u60a8 \u5c06 \u63a7\u4ef6 \u5206\u914d \u7ed9 \u8fd9\u4e9b \u201c \u63a7\u5236 \u63a7\u5236\u5668 \u201d \u7684 \u8f74 \u548c \u6309\u94ae \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u6b64\u7c7b \u6587\u4ef6 \u7684 \u793a\u4f8b \uff0c \u4f46 \u901a\u5e38 \u60a8 \u9700\u8981 \u6839\u636e \u81ea\u5df1 \u7684 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6b64 \u6587\u4ef6 \uff1a controller _ XboxOneForWindows . json \u662f \u4e00\u79cd \u76f8\u5f53 \u6807\u51c6 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u8bbe\u7f6e \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u6237 \u5e94\u8be5 \u5f88 \u5bb9\u6613 \u9002\u5e94 \uff0c \u5b83 \u6620\u5c04 \u6240\u6709 \u8f74 \u5e76 \u5305\u62ec \u987a\u5e8f \u53d8\u901f \u53d8\u901f\u5668 \u8bbe\u7f6e \u4ee5\u53ca \u5728 \u81ea\u52a8 \u548c \u624b\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u4e4b\u95f4 \u5207\u6362 \u7684 \u65b9\u5f0f \u3002 controller _ WheelPedalsAndShifters . json \u662f \u4e00\u4e2a \u66f4 \u590d\u6742 \u7684 \u591a \u63a7\u5236 \u63a7\u5236\u5668 \u8bbe\u7f6e \u7684 \u793a\u4f8b \uff0c \u5177\u6709 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u4e09\u4e2a \u8e0f\u677f \u4ee5\u53ca \u987a\u5e8f \u548c H \u578b \u6362\u6863 \u5668 \u8bbe\u7f6e \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u6b64 \u793a\u4f8b \uff0c \u53ef\u80fd \u9700\u8981 \u8fdb\u884c \u5927\u91cf \u4fee\u6539 \uff0c \u4f46 \u5b83 \u5c55\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u4e0d\u540c \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u793a\u4f8b \u63a7\u5236 \u63a7\u5236\u5668 \u6587\u4ef6 { \" steering \" : { \" name \" : \" Steering Wheel \" , \" axis \" : 0 , \" min \" : - 32768 , \" max \" : 32767 , \" scaled _ min \" : 1 , \" scaled _ max \" : - 1 } , \" throttle \" : { \" name \" : \" Pedal Box \" , \" axis \" : 2 , \" min \" : - 1 , \" max \" : - 32767 , \" scaled _ min \" : 0 , \" scaled _ max \" : 1 } , \" brake \" : { \" name \" : \" Pedal Box \" , \" axis \" : 2 , \" min \" : 0 , \" max \" : 32767 , \" scaled _ min \" : 0 , \" scaled _ max \" : 1 } , \" clutch \" : { \" name \" : \" Pedal Box \" , \" axis \" : 4 , \" min \" : 0 , \" max \" : 32767 , \" scaled _ min \" : 0 , \" scaled _ max \" : 1 } , \" gearReverse \" : { \" name \" : \" H - Shifter \" , \" button \" : 0 } , \" gear1 \" : { \" name \" : \" H - Shifter \" , \" button \" : 1 } , \" gear2 \" : { \" name \" : \" H - Shifter \" , \" button \" : 2 } , \" gear3 \" : { \" name \" : \" H - Shifter \" , \" button \" : 3 } , \" gear4 \" : { \" name \" : \" H - Shifter \" , \" button \" : 4 } , \" gear5 \" : { \" name \" : \" H - Shifter \" , \" button \" : 5 } , \" gear6 \" : { \" name \" : \" H - Shifter \" , \" button \" : 6 } , \" gear7 \" : { \" name \" : \" H - Shifter \" , \" button \" : 7 } , \" gear8 \" : { \" name \" : \" H - Shifter \" , \" button \" : 8 } , \" gear9 \" : { \" name \" : \" H - Shifter \" , \" button \" : 9 } , \" shiftUp \" : { \" name \" : \" Steering Wheel \" , \" button \" : 4 } , \" shiftDown \" : { \" name \" : \" Steering Wheel \" , \" button \" : 5 } , \" toggleManualGearbox \" : { \" name \" : \" Button Box \" , \" button \" : 2 } } \u5728 \u6587\u4ef6 \u7684 \u9876\u5c42 \uff0c \u6211\u4eec \u6709 \u4e00\u7ec4 \u63a7\u5236 \u63a7\u5236\u5668 \u51fd\u6570 \uff08 \uff0c \uff0c \uff0c steering ... \uff09 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u51fd\u6570 \uff0c \u6211\u4eec \u53ef\u4ee5 \u6307\u5b9a \u4e00\u4e2a \u8f74 \u6216 \u6309\u94ae \u5b9a\u4e49 \u4ee5\u53ca \u6240\u6709 \u6620\u5c04 \u7ec6\u8282 \uff1a throttleshiftUp \u8f74 \uff1a steering \uff0c throttle \uff0c brake \uff0c clutch \u5177\u6709 \u4ee5\u4e0b \u5c5e\u6027 \uff1a name \u662f \u7cfb\u7edf \u4e0a \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u540d\u79f0 \uff1b axis \u662f \u60a8 \u60f3\u8981 \u6620\u5c04 \u5230 \u7684 \u8f74 \u7684 \u7f16\u53f7 \uff1b min \u548c max \u662f \u8be5 \u8f74 \u7684 \u539f\u59cb \u6700\u5c0f \u6700\u5c0f\u503c \u548c \u6700\u5927 \u5927\u503c \u6700\u5927\u503c \uff1b scaled _ min \u548c scaled _ max \u662f \u8be5 \u8f74 \u7684 \u8f93\u51fa \u6700\u5c0f \u6700\u5c0f\u503c \u548c \u6700\u5927 \u5927\u503c \u6700\u5927\u503c \uff1b \u6309\u94ae \uff1a shiftUp \uff0c shiftDown \uff0c gearReverse \uff0c gear1 \uff0c gear2 ... \uff0c gear9 \u5177\u6709 toggleManualGearbox \u4ee5\u4e0b \u5c5e\u6027 \uff1a name \u662f \u7cfb\u7edf \u4e0a \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u540d\u79f0 \uff1b button \u662f \u60a8 \u60f3\u8981 \u6620\u5c04 \u7684 \u6309\u94ae \u7684 \u7f16\u53f7 \uff1b \u5173\u4e8e \u63a7\u5236 \u53d8\u901f \u53d8\u901f\u7bb1 \u7684 \u4e00\u53e5 \u8bdd \uff1a \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u624b\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \uff0c \u5219 \u652f\u6301 \u987a\u5e8f \u6362\u6863 \u5668 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u6309\u94ae \u5728 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u548c \u624b\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u4e4b\u95f4 \u5207\u6362 \u3002 \u8fd8\u6709 H - shifter \u652f\u6301 \u3002 \u4ee3\u7801 \u6700 \u591a \u652f\u6301 9 \u4e2a \u524d\u8fdb \u6863 \uff0c \u5e76 \u652f\u6301 \u6362\u6863 \uff08 \u53ea\u8981 \u60a8 \u5b8c\u5168 \u8e29\u4e0b \u79bb\u5408 \u79bb\u5408\u5668 \uff09 \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8c03\u8bd5 \u6a21\u5f0f \u8c03\u8bd5\u6a21\u5f0f \uff0c \u6bcf\u79d2 \u4e24\u6b21 \u6253\u5370 \u6240\u6709 \u8fde\u63a5 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8f74 \u548c \u6309\u94ae \u7684 \u6240\u6709 \u503c \u3002 \u8fd9 \u5728 \u5b9a\u4e49 \u6587\u4ef6 \u65f6 \u975e\u5e38 \u6709\u7528 \uff0c \u5426\u5219 \u53ef\u80fd \u5e94\u8be5 \u7981\u7528 \u3002 \u5f53\u524d \u5b9e\u65bd \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u6240\u6709 \u63a7\u5236 \u63a7\u5236\u5668 \u5904\u7406 \u90fd \u4e0e IrrLicht \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u60a8 \u9700\u8981 \u4f7f\u7528 \u5b83 \u6765 \u5b9e\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u4e5f \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7ee7\u627f \u4e86 IrrLicht \u5904\u7406 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6240\u6709 \u9650\u5236 \u3002 \u8fd9 \u4e3b\u8981 \u53cd\u6620 \u5728 \u6bcf\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \u652f\u6301 \u7684 \u6309\u94ae \u6570\u91cf \u4e0a \uff0c \u4f46 \u4e5f \u53ef\u80fd \u5b58\u5728 \u5176\u4ed6 \u9650\u5236 \u3002 \u57fa\u4e8e \u6570\u636e \uff08 \u5f00\u73af \uff09 \u7684 \u9a71\u52a8 \u9a71\u52a8\u5668 \u4e00\u4e9b \u91cd\u8981 \u7684 \u8f66\u8f86 \u6d4b\u8bd5 \u64cd\u4f5c \u57fa\u4e8e \u65f6\u95f4 \u76f8\u5173 \u7684 \u8f6c\u5411 / \u6cb9\u95e8 / \u5236\u52a8 \u4fe1\u53f7 \u3002 \u4e0d \u8003\u8651 \u4efb\u4f55 \u7c7b\u578b \u7684 \u53cd\u9988 \u3002 \u6b64 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u6a21\u578b \u5728 ChDataDriver \u4e2d \u5b9e\u73b0 \u3002 \u5e26\u6709 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \u7684 ASCII \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u5305\u542b \u56db\u5217 \uff0c \u5206\u522b \u4e3a \u65f6\u95f4 \uff08 s \uff09 \u3001 \u8f6c\u5411 \u8f93\u5165 \uff08 \u65e0\u91cf \u7eb2\u91cf \uff0c \u5355\u4f4d \u4e3a [ \u2212 1 , 1 ] \uff0c \u548c \u2212 1 \u8868\u793a \u5411 \u5de6 \u5b8c\u5168 \u8f6c\u5411 \uff09 \u3001 \u6cb9\u95e8 \u8f93\u5165 \uff08 \u65e0\u91cf \u7eb2\u91cf [ 0 , 1 ] \uff0c \u548c 1 \u8868\u793a \u5168 \u6cb9\u95e8 \uff09 \u548c \u5236\u52a8 \uff08 \u65e0\u91cf \u7eb2\u91cf \u4ecb\u4e8e [ 0 , 1 ] \uff0c \u548c 1 \u8868\u793a \u6700\u5927 \u5236 \u52a8\u529b \uff09 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u793a\u4f8b \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.5 0.0 0.0 3.0 0.0 0.5 0.0 0.0 5.0 0.5 0.4 0.0 0.0 9.0 0.0 0.0 1.0 0.0 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \uff0c \u5f53\u524d \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \uff08 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \uff09 \u90fd \u662f \u901a\u8fc7 \u5bf9 \u63d0\u4f9b \u7684 \u6570\u636e \u8fdb\u884c \u5206\u6bb5 \u7ebf\u6027 \u63d2\u503c \u7ebf\u6027\u63d2\u503c \u83b7\u5f97 \u7684 \u3002 \u9664\u4e86 \u6700\u540e \u4e00\u6b21 \u8f93\u5165 \u4e4b\u5916 \uff0c \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \u5c06 \u4fdd\u6301 \u4e3a \u5176 \u6700\u540e \u4e00\u4e2a \u503c \u3002 \u95ed\u73af \u9a71\u52a8 \u6a21\u578b \u95ed\u73af \u9a71\u52a8 \u9a71\u52a8\u5668 \u6a21\u578b \u9700\u8981 \u63a7\u5236 \u7b56\u7565 \u63a7\u5236\u7b56\u7565 \u5e76 \u8003\u8651 \u53cd\u9988 \u3002 \u53cd\u9988 \u53ef\u80fd \u5bfc\u81f4 \u4e0d \u7a33\u5b9a \u7684 \u884c\u4e3a \uff0c \u56e0\u6b64 \u5fc5\u987b \u660e\u667a \u660e\u667a\u5730 \u9009\u62e9 \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u793a\u4f8b \u53c2\u6570 \u5df2 \u5728 \u5e7f\u6cdb \u7684 \u7528\u9014 \u4e2d \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \u3002 \u7528\u6237 \u5e94\u4ece \u7ed9\u5b9a \u7684 \u793a\u4f8b \u53c2\u6570 \u96c6 \u4e4b\u4e00 \u5f00\u59cb \uff0c \u5e76 \u4ec5 \u5728 \u5fc5\u8981 \u65f6 \u8fdb\u884c \u4fee\u6539 \u3002 \u8def\u5f84 \u8ddf\u968f \u63a7\u5236 \u63a7\u5236\u5668 \u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u9075\u5faa \u7ed9\u5b9a \u7684 \u8def\u5f84 \uff0c \u5fc5\u987b \u6d4b\u91cf \u6a2a\u5411 \u8def\u5f84 \u504f\u5dee \u5e76 \u751f\u6210 \u4f7f \u504f\u5dee \u6700\u5c0f \u6700\u5c0f\u5316 \u7684 \u65b9\u5411 \u65b9\u5411\u76d8 \u89d2\u5ea6 \u3002 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e00\u4e2a \u5468\u77e5 \u4f17\u6240\u5468\u77e5 \u7684 \u65b9\u6cd5 \u662f PID \u63a7\u5236 \u63a7\u5236\u5668 \uff08 P = \u6bd4\u4f8b \u3001 I = \u79ef\u5206 \u3001 D = \u5fae\u5206 \uff09 \u3002 \u91c7\u7528 \u7eaf P \u53d8\u91cf \uff0c \u53ea \u9700 \u8bbe\u7f6e P \u589e\u76ca \u3002 \u8fd9 \u5728 \u8bb8\u591a \u60c5\u51b5 \u4e0b \u90fd \u6709\u6548 \uff0c \u4f46\u7eaf P \u63a7\u5236 \u63a7\u5236\u5668 \u6c38\u8fdc \u65e0\u6cd5 \u5c06 \u6a2a\u5411 \u504f\u5dee \u964d\u81f3 \u96f6 \u3002 \u6b8b\u4f59 \u504f\u5dee \u968f P \u589e\u76ca \u7684 \u589e\u52a0 \u800c \u51cf\u5c0f \u3002 \u5982\u679c P \u589e\u76ca \u592a \u5927 \uff0c \u8f66\u8f86 \u5c06 \u5f00\u59cb \u56f4\u7ed5 \u6240 \u9700 \u7684 \u8f66\u8f86 \u8def\u5f84 \u632f\u8361 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 I \u589e\u76ca \u8bbe\u7f6e \u4e3a P \u589e\u76ca \u7684 5% \u5230 10% \u5de6\u53f3 \u7684 \u503c\u6765 \u6d88\u9664 \u6b8b\u4f59 \u8def\u5f84 \u504f\u5dee \u3002 \u901a\u8fc7 \u8bbe\u7f6e D \u589e\u76ca \uff0c \u5982\u679c \u53d1\u751f \u8def\u5f84 \u632f\u8361 \uff0c \u53ef\u4ee5 \u65bd\u52a0 \u963b\u5c3c \u3002 \u5982\u679c \u4f7f\u7528 I \u589e\u76ca \uff0c \u6a21\u62df \u64cd\u4f5c \u4e0d \u5e94 \u8d85\u8fc7 \u7ea6 2 \u5206\u949f \u3002 \u5982\u679c \u9700\u8981 \u66f4 \u591a \u65f6\u95f4 \uff0c \u5219 \u5e94 \u6bcf 2 \u5206\u949f \u91cd\u7f6e \u4e00\u6b21 \u63a7\u5236 \u63a7\u5236\u5668 \u72b6\u6001 \u4ee5 \u907f\u514d \u4e0d \u7a33\u5b9a \u3002 \u4e0b\u56fe \uff08 \u7ef4\u57fa \u767e\u79d1 \u7ef4\u57fa\u767e \u7ef4\u57fa\u767e\u79d1 \uff09 \u5c55\u793a \u4e86 Chrono \u5982\u4f55 \u5b9e\u73b0 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff1a r ( t ) = \u6240 \u9700 \u8def\u5f84 \u4fe1\u53f7 e ( t ) = \u6a2a\u5411 \u8def\u5f84 \u504f\u5dee y ( t ) = \u5b9e\u9645 \u8def\u5f84 \u4fe1\u53f7 u ( t ) = \u8f6c\u5411 \u4fe1\u53f7 \u6b64 \u56fe\u8868 \uff08 \u7ef4\u57fa \u767e\u79d1 \u7ef4\u57fa\u767e \u7ef4\u57fa\u767e\u79d1 \uff09 \u663e\u793a \u4e86 \u589e\u76ca \u56e0\u7d20 \u7684 \u5f71\u54cd \uff1a \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u4e0d\u4ec5 \u4f1a \u5bf9 \u504f\u5dee \u53d8\u5316 \u505a\u51fa \u53cd\u5e94 \uff0c \u8fd8 \u80fd \u8fdb\u884c \u9884\u6d4b \u3002 \u5728 Chrono \u4e2d \uff0c \u8fd9\u79cd \u80fd\u529b \u662f \u901a\u8fc7 \u5728 \u8f66\u8eab \u524d\u65b9 \u8bbe\u7f6e \u4e00\u4e2a \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u6765 \u6d4b\u91cf \u504f\u5dee \u6765 \u6a21\u62df \u7684 \u3002 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u4e0e \u8f66\u8f86 \u53c2\u8003 \u7cfb\u7edf \u7684 \u8ddd\u79bb \u79f0\u4e3a \u524d\u89c6 \u8ddd\u79bb \uff0c \u662f \u91cd\u8981 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u8f93\u5165 \u53c2\u6570 \u3002 \u671f\u671b \u8def\u5f84 \u4ee5 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u6307\u5b9a \uff08 \u53c2\u89c1 ChBezierCurve \uff09 \u3002 \u8bef\u5dee \u5b9a\u4e49 \u4e3a \u201c \u54e8\u5175 \u70b9 \u201d \uff08 \u4f4d\u4e8e \u8f66\u8f86 \u524d\u8fdb \u65b9\u5411 \u524d\u8fdb\u65b9\u5411 \u524d\u89c6 \u8ddd\u79bb \u8ddd\u79bb\u5904 \u7684 \u70b9 \uff09 \u4e0e \u201c \u76ee\u6807 \u70b9 \u201d \uff08 \u54e8\u5175 \u70b9 \u5728 \u671f\u671b \u8def\u5f84 \u4e0a \u7684 \u6295\u5f71 \uff09 \u4e4b\u95f4 \u7684 \u504f\u5dee \u3002 \u6052\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u4e3a\u4e86 \u4fdd\u6301 \u7ed9\u5b9a \u7684 \u8f66\u901f \uff0c \u53ef\u4ee5 \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u4e0e \u8def\u5f84 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \uff0c \u5b83 \u4f7f\u7528 \u901f\u5ea6 \u504f\u5dee \u800c \u4e0d\u662f \u6a2a\u5411 \u8def\u5f84 \u504f\u5dee \u3002 r ( t ) = \u6240 \u9700 \u901f\u5ea6 \u4fe1\u53f7 e ( t ) = \u901f\u5ea6 \u504f\u5dee y ( t ) = \u5b9e\u9645 \u901f\u5ea6 \u4fe1\u53f7 u ( t ) = \u6cb9\u95e8 / \u5239\u8f66 \u4fe1\u53f7 ChPathFollowerDriver \u7c7b \u5b9e\u73b0 \u4e86 PID \u6a2a\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u4e0e PID \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u7ed3\u5408 \u3002 \u5b83 \u5728 \u53cc \u8f66\u9053 \u53d8\u6362 \u7b49 \u6781\u7aef \u64cd\u4f5c \u4e2d \u6548\u679c \u5f88 \u597d \u3002 \u6807\u51c6 \u9053\u8def \u9a7e\u9a76 \u64cd\u4f5c \u7684 \u4e00\u4e2a \u6709\u8da3 \u66ff\u4ee3 \u65b9\u6848 \u662f ChPathFollowerDriverSR \u3002 \u5b83 \u6709 \u4e00\u4e2a PID \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4f46 \u91c7\u7528 \u8003\u8651 \u4eba \u548c \u8f66\u8f86 \u7279\u6027 \u7684 \u6a2a\u5411 \u63a7\u5236 \u7b56\u7565 \u63a7\u5236\u7b56\u7565 \u3002 \u9884\u6d4b \u4f7f\u7528 \u524d\u77bb \u65f6\u95f4 \u800c \u4e0d\u662f \u524d\u77bb \u8ddd\u79bb \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6709\u6548 \u524d\u77bb \u8ddd\u79bb \u968f \u901f\u5ea6 \u800c \u53d8\u5316 \u3002 \u6700\u4f73 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u6052\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u9002\u7528 \u4e8e \u8bb8\u591a \u6807\u51c6 \u9a7e\u9a76 \u64cd\u4f5c \u3002 \u5bf9\u4e8e \u5728 \u957f \u800c \u5f2f\u66f2 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \uff0c \u8f66\u8f86 \u5728 \u6574\u4e2a \u8fc7\u7a0b \u4e2d \u884c\u9a76 \u7684 \u901f\u5ea6 \u4ee4\u4eba \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u3002 \u9488\u5bf9 \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5df2\u7ecf \u5f00\u53d1 \u4e86 ChHumanDriver \u7c7b \u3002 \u6a2a\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u548c \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u4f7f\u7528 \u4eba\u7c7b \u884c\u4e3a \u3001 \u8f66\u8f86 \u5c5e\u6027 \u548c \u9884\u671f \u4ee5\u53ca \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u89c6\u91ce \u3002 \u6a2a\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u4e0e ChPathFollowerDriverSR \u4e2d \u5b9e\u73b0 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u540c \u3002","title":"\u9a71\u52a8 \u5b50\u7cfb\u7edf"},{"location":"chrono/vehicle_driver/#_1","text":"\u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u57fa\u4e8e \u6570\u636e \uff08 \u5f00\u73af \uff09 \u7684 \u9a71\u52a8 \u9a71\u52a8\u5668 \u95ed\u73af \u9a71\u52a8 \u6a21\u578b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \uff08 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5239\u8f66 \uff09 \u7531 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u63d0\u4f9b \uff0c Chrono : : Vehicle \u4e2d \u63d0\u4f9b \u9009\u9879 \uff0c \u5305\u62ec \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u3001 \u6570\u636e \u9a71\u52a8 \u548c \u95ed\u73af \u5f0f \uff08 \u4f8b\u5982 \u57fa\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8def\u5f84 \u8ddf\u8e2a \uff09 \u3002 \u9a71\u52a8 \u7cfb\u7edf \u7684 \u57fa\u7c7b ChDriver \u5bf9 \u9a71\u52a8 \u7cfb\u7edf \u6a21\u677f \u63d0\u51fa \u4e86 \u6700\u4f4e \u8981\u6c42 \uff0c \u7279\u522b \u662f \u8fd4\u56de \u6cb9\u95e8 \u8f93\u5165 \u7684 \u80fd\u529b \uff08 \u5728 [ 0 , 1 ] \u8303\u56f4 \uff09 \u3001 \u8f6c\u5411 \u8f93\u5165 \uff08 \u6807\u51c6 \u6807\u51c6\u5316 [ \u2212 1 , + 1 ] \u8303\u56f4 \uff0c \u8d1f\u503c \u8868\u793a \u5de6\u8f6c \u5411\u5de6\u8f6c \u5411 \uff09 \uff0c \u4ee5\u53ca \u5236\u52a8 \u8f93\u5165 \uff08 \u5728 [ 0 , 1 ] \u8303\u56f4 \uff09 \u3002 \u6b64\u5916 \uff0c \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u53ef\u4ee5 \u901a\u8fc7 \u5176 Synchronize \u65b9\u6cd5 \u4ece \u4efb\u4f55 \u5176\u4ed6 \u7cfb\u7edf \u63a5\u6536 \u4fe1\u606f \uff08 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u72b6\u6001 \uff09 \uff0c \u5e76\u4e14 \u53ef\u80fd \u5177\u6709 \u5185\u90e8 \u52a8\u6001 \uff08 \u5728 \u5176 Advance \u65b9\u6cd5 \u4e2d \u5b9e\u73b0 \uff09 \u3002 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u7684 \u7279\u5b9a \u6a21\u677f \u53ef\u4ee5 \u6269\u5c55 \u751f\u6210 \u7684 \u8f66\u8f86 \u8f93\u5165 \u96c6 \uff0c \u4f8b\u5982 \u5305\u62ec \u5f53\u524d \u9009\u62e9 \u7684 \u624b\u52a8 \u53d8\u901f \u53d8\u901f\u5668 \u6863\u4f4d \u3001 \u542f\u7528 / \u7981\u7528 \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7684 \u4ea4\u53c9 \u9a71\u52a8 \u80fd\u529b \u7b49 \u3002 Chrono : : Vehicle \u5305\u542b \u591a\u4e2a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u6a21\u677f \u3002 \u5bf9\u4e8e \u4ee5\u8f6f \u5b9e\u65f6 \u65b9\u5f0f \u8fd0\u884c \u7684 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u6a21\u62df \uff0c \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u6a21\u677f \uff0c \u8be5 \u7cfb\u7edf \u6839\u636e \u7528\u6237 \u63a7\u5236 \uff08 \u952e\u76d8 \u548c \u9f20\u6807 \u6216 \u6e38\u620f \u63a7\u5236 \u63a7\u5236\u5668 \uff09 \u4ea7\u751f \u8f66\u8f86 \u8f93\u5165 \u3002 \u5bf9\u4e8e \u5b9e\u9a8c \u6a21\u62df \u8bbe\u8ba1 \uff0c \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u4e8e \u901a\u8fc7 \u6587\u672c \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u63d0\u4f9b \u7684 \u8f93\u5165 \u7684 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u6a21\u677f \uff0c \u5176\u4e2d \u8f66\u8f86 \u8f93\u5165 \u901a\u8fc7 \u7ebf\u6027 \u63d2\u503c \u7ebf\u6027\u63d2\u503c \u83b7\u5f97 \u3002 \u6b64\u7c7b \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u4e5f \u53ef\u4ee5 \u901a\u8fc7 \u4ea4\u4e92 \u8fd0\u884c \u671f\u95f4 \u6536\u96c6 \u7684 \u6570\u636e \u81ea\u52a8 \u751f\u6210 \u3002 \u6700\u540e \uff0c Chrono : : Vehicle \u5305\u542b \u51e0\u4e2a \u95ed\u73af \u9a71\u52a8 \u7cfb\u7edf \u6a21\u578b \uff0c \u57fa\u4e8e \u5bf9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5e95\u5c42 \u652f\u6301 \u3002 \u8fd9\u4e9b \u6a21\u578b \u5305\u62ec \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u53ef \u540c\u65f6 \u8c03\u8282 \u6cb9\u95e8 \u548c \u5236\u52a8 \u8f93\u5165 \u4ee5 \u4fdd\u6301 \u6052\u5b9a \u7684 \u8f66\u901f \uff09 \u548c \u8def\u5f84 \u8ddf\u968f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u540e\u8005 \u53ef \u8c03\u6574 \u8f6c\u5411 \u8f93\u5165 \uff0c \u4f7f \u8f66\u8f86 \u9075\u5faa \u7528\u6237 \u5b9a\u4e49 \u7684 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u8def\u5f84 \u3002","title":"\u9a71\u52a8 \u5b50\u7cfb\u7edf"},{"location":"chrono/vehicle_driver/#_2","text":"\u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f ChInteractiveDriverIRR \uff08 \u7528\u4e8e \u57fa\u4e8e Irrlicht \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7cfb\u7edf \uff09 \u548c ChInteractiveDriverVSG \uff08 \u7528\u4e8e \u57fa\u4e8e VSG \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7cfb\u7edf \uff09 \u53ef\u4ee5 \u901a\u8fc7 \u7528\u6237 \u8f93\u5165 \u63a7\u5236 \uff08 \u8f6c\u5411 / \u52a0\u901f / \u5236\u52a8 \uff09 \u6a21\u62df \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e \u5404\u81ea \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7cfb\u7edf \u7684 \u952e\u76d8 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u4e8b\u4ef6 \u5904\u7406 \u7a0b\u5e8f \u5904\u7406\u7a0b\u5e8f \u3002 \u8be5 \u9a71\u52a8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u578b \u7684 \u5176\u4ed6 \u7279\u6027 \u5305\u62ec \uff1a \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u63a7\u5236 \u63a7\u5236\u5668 \u652f\u6301 \u80fd\u591f \u9501\u5b9a / \u89e3\u9501 \u9a71\u52a8 \u9a71\u52a8\u5668 \u8f93\u5165 \u4e3a \u5176 \u5f53\u524d \u503c \uff08 \u901a\u8fc7 \u952e \u63a7\u5236 J \uff09 \u8bb0\u5f55 \u548c \u56de\u653e \u7528\u6237 \u8f93\u5165 \u7684 \u80fd\u529b \uff08 \u4f7f\u7528 \u5d4c\u5165 \u5d4c\u5165\u5f0f \u57fa\u4e8e \u6570\u636e \u7684 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1b \u4e0b\u6587 \u89c1\u4e0b\u6587 \uff09","title":"\u4ea4\u4e92\u5f0f \u9a71\u52a8\u7a0b\u5e8f"},{"location":"chrono/vehicle_driver/#_3","text":"\u952e A \u589e\u52a0 \u5de6\u8f6c \u65b9\u5411 \u65b9\u5411\u76d8 \u89d2\u5ea6 \u952e D \u589e\u52a0 \u53f3\u8f6c \u65b9\u5411 \u65b9\u5411\u76d8 \u89d2\u5ea6 \u952e W \u52a0\u901f \u952e S \u51cf\u901f \u6cb9\u95e8 \u548c \u5239\u8f66 \u63a7\u5236 \u662f \u8026\u5408 \u7684 \uff0c \u5373 \u52a0\u901f \u65f6 \u9996\u5148 \u5c06 \u5239\u8f66 \u964d\u81f3 \u96f6 \uff0c \u7136\u540e \u518d \u589e\u52a0 \u6cb9\u95e8 \u8f93\u5165 \uff08 \u51cf\u901f \u51cf\u901f\u65f6 \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \uff09 \u3002","title":"\u952e\u76d8 \u9a71\u52a8\u7a0b\u5e8f"},{"location":"chrono/vehicle_driver/#_4","text":"\u73b0\u4ee3 \u6a21\u62df \u6a21\u62df\u5668 \u901a\u5e38 \u6709 \u591a\u4e2a \uff08 USB \uff09 \u8bbe\u5907 \u7528\u4e8e \u63a7\u5236 \u6c7d\u8f66 \u4e2d \u7684 \u6240\u6709 \u4e0d\u540c \u63a7\u5236 \u5143\u4ef6 \u63a7\u5236\u5143\u4ef6 \u3002 \u5b83\u4eec \u914d\u6709 \u8e0f\u677f \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 H \u578b \u6362\u6321 \u5668 \u3001 \u987a\u5e8f \u6362\u6321 \u5668 \u3001 \u624b\u5239 \u548c \u6309\u94ae \u76d2 \uff08 \u5e26\u6709 \u5927\u91cf \u6309\u94ae \u6765 \u66f4\u6539 \u8f66\u8f7d \u7cfb\u7edf \uff09 \u7684 \u8bbe\u5907 \u3002 Chrono \u652f\u6301 \u8fd9 \u4e00\u70b9 \uff0c \u56e0\u4e3a \u5b83 \u80fd\u591f \u5c06 \u63a7\u5236 \u63a7\u5236\u5668 \u8f74 \u548c \u6309\u94ae \u5206\u914d \u7ed9 \u8fde\u63a5 \u7684 \u591a\u4e2a \u8bbe\u5907 \u3002 \u8f74 \u4e5f \u53ef\u4ee5 \u6821\u51c6 \uff0c \u8bbe\u7f6e \u8be5 \u8f74 \u7684 \u6700\u5c0f \u548c \u6700\u5927 \uff08 \u539f\u59cb \uff09 \u503c \u4ee5\u53ca \u9884\u671f \uff08 \u7f29\u653e \uff09 \u8f93\u51fa \u503c \u3002 \u6620\u5c04 \u548c \u6821\u51c6 \u662f \u4f7f\u7528 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u201c controller . json \u201d \u6587\u4ef6 \u5b8c\u6210 \u7684 \uff0c data / vehicles \u8be5 \u6587\u4ef6 \u5141\u8bb8 \u60a8 \u5c06 \u63a7\u4ef6 \u5206\u914d \u7ed9 \u8fd9\u4e9b \u201c \u63a7\u5236 \u63a7\u5236\u5668 \u201d \u7684 \u8f74 \u548c \u6309\u94ae \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u6b64\u7c7b \u6587\u4ef6 \u7684 \u793a\u4f8b \uff0c \u4f46 \u901a\u5e38 \u60a8 \u9700\u8981 \u6839\u636e \u81ea\u5df1 \u7684 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6b64 \u6587\u4ef6 \uff1a controller _ XboxOneForWindows . json \u662f \u4e00\u79cd \u76f8\u5f53 \u6807\u51c6 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u8bbe\u7f6e \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u6237 \u5e94\u8be5 \u5f88 \u5bb9\u6613 \u9002\u5e94 \uff0c \u5b83 \u6620\u5c04 \u6240\u6709 \u8f74 \u5e76 \u5305\u62ec \u987a\u5e8f \u53d8\u901f \u53d8\u901f\u5668 \u8bbe\u7f6e \u4ee5\u53ca \u5728 \u81ea\u52a8 \u548c \u624b\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u4e4b\u95f4 \u5207\u6362 \u7684 \u65b9\u5f0f \u3002 controller _ WheelPedalsAndShifters . json \u662f \u4e00\u4e2a \u66f4 \u590d\u6742 \u7684 \u591a \u63a7\u5236 \u63a7\u5236\u5668 \u8bbe\u7f6e \u7684 \u793a\u4f8b \uff0c \u5177\u6709 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u4e09\u4e2a \u8e0f\u677f \u4ee5\u53ca \u987a\u5e8f \u548c H \u578b \u6362\u6863 \u5668 \u8bbe\u7f6e \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u6b64 \u793a\u4f8b \uff0c \u53ef\u80fd \u9700\u8981 \u8fdb\u884c \u5927\u91cf \u4fee\u6539 \uff0c \u4f46 \u5b83 \u5c55\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u4e0d\u540c \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002","title":"\u63a7\u5236\u5668\u9a71\u52a8 \u7a0b\u5e8f"},{"location":"chrono/vehicle_driver/#_5","text":"{ \" steering \" : { \" name \" : \" Steering Wheel \" , \" axis \" : 0 , \" min \" : - 32768 , \" max \" : 32767 , \" scaled _ min \" : 1 , \" scaled _ max \" : - 1 } , \" throttle \" : { \" name \" : \" Pedal Box \" , \" axis \" : 2 , \" min \" : - 1 , \" max \" : - 32767 , \" scaled _ min \" : 0 , \" scaled _ max \" : 1 } , \" brake \" : { \" name \" : \" Pedal Box \" , \" axis \" : 2 , \" min \" : 0 , \" max \" : 32767 , \" scaled _ min \" : 0 , \" scaled _ max \" : 1 } , \" clutch \" : { \" name \" : \" Pedal Box \" , \" axis \" : 4 , \" min \" : 0 , \" max \" : 32767 , \" scaled _ min \" : 0 , \" scaled _ max \" : 1 } , \" gearReverse \" : { \" name \" : \" H - Shifter \" , \" button \" : 0 } , \" gear1 \" : { \" name \" : \" H - Shifter \" , \" button \" : 1 } , \" gear2 \" : { \" name \" : \" H - Shifter \" , \" button \" : 2 } , \" gear3 \" : { \" name \" : \" H - Shifter \" , \" button \" : 3 } , \" gear4 \" : { \" name \" : \" H - Shifter \" , \" button \" : 4 } , \" gear5 \" : { \" name \" : \" H - Shifter \" , \" button \" : 5 } , \" gear6 \" : { \" name \" : \" H - Shifter \" , \" button \" : 6 } , \" gear7 \" : { \" name \" : \" H - Shifter \" , \" button \" : 7 } , \" gear8 \" : { \" name \" : \" H - Shifter \" , \" button \" : 8 } , \" gear9 \" : { \" name \" : \" H - Shifter \" , \" button \" : 9 } , \" shiftUp \" : { \" name \" : \" Steering Wheel \" , \" button \" : 4 } , \" shiftDown \" : { \" name \" : \" Steering Wheel \" , \" button \" : 5 } , \" toggleManualGearbox \" : { \" name \" : \" Button Box \" , \" button \" : 2 } } \u5728 \u6587\u4ef6 \u7684 \u9876\u5c42 \uff0c \u6211\u4eec \u6709 \u4e00\u7ec4 \u63a7\u5236 \u63a7\u5236\u5668 \u51fd\u6570 \uff08 \uff0c \uff0c \uff0c steering ... \uff09 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u51fd\u6570 \uff0c \u6211\u4eec \u53ef\u4ee5 \u6307\u5b9a \u4e00\u4e2a \u8f74 \u6216 \u6309\u94ae \u5b9a\u4e49 \u4ee5\u53ca \u6240\u6709 \u6620\u5c04 \u7ec6\u8282 \uff1a throttleshiftUp \u8f74 \uff1a steering \uff0c throttle \uff0c brake \uff0c clutch \u5177\u6709 \u4ee5\u4e0b \u5c5e\u6027 \uff1a name \u662f \u7cfb\u7edf \u4e0a \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u540d\u79f0 \uff1b axis \u662f \u60a8 \u60f3\u8981 \u6620\u5c04 \u5230 \u7684 \u8f74 \u7684 \u7f16\u53f7 \uff1b min \u548c max \u662f \u8be5 \u8f74 \u7684 \u539f\u59cb \u6700\u5c0f \u6700\u5c0f\u503c \u548c \u6700\u5927 \u5927\u503c \u6700\u5927\u503c \uff1b scaled _ min \u548c scaled _ max \u662f \u8be5 \u8f74 \u7684 \u8f93\u51fa \u6700\u5c0f \u6700\u5c0f\u503c \u548c \u6700\u5927 \u5927\u503c \u6700\u5927\u503c \uff1b \u6309\u94ae \uff1a shiftUp \uff0c shiftDown \uff0c gearReverse \uff0c gear1 \uff0c gear2 ... \uff0c gear9 \u5177\u6709 toggleManualGearbox \u4ee5\u4e0b \u5c5e\u6027 \uff1a name \u662f \u7cfb\u7edf \u4e0a \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u540d\u79f0 \uff1b button \u662f \u60a8 \u60f3\u8981 \u6620\u5c04 \u7684 \u6309\u94ae \u7684 \u7f16\u53f7 \uff1b \u5173\u4e8e \u63a7\u5236 \u53d8\u901f \u53d8\u901f\u7bb1 \u7684 \u4e00\u53e5 \u8bdd \uff1a \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u624b\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \uff0c \u5219 \u652f\u6301 \u987a\u5e8f \u6362\u6863 \u5668 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u6309\u94ae \u5728 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u548c \u624b\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u4e4b\u95f4 \u5207\u6362 \u3002 \u8fd8\u6709 H - shifter \u652f\u6301 \u3002 \u4ee3\u7801 \u6700 \u591a \u652f\u6301 9 \u4e2a \u524d\u8fdb \u6863 \uff0c \u5e76 \u652f\u6301 \u6362\u6863 \uff08 \u53ea\u8981 \u60a8 \u5b8c\u5168 \u8e29\u4e0b \u79bb\u5408 \u79bb\u5408\u5668 \uff09 \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8c03\u8bd5 \u6a21\u5f0f \u8c03\u8bd5\u6a21\u5f0f \uff0c \u6bcf\u79d2 \u4e24\u6b21 \u6253\u5370 \u6240\u6709 \u8fde\u63a5 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8f74 \u548c \u6309\u94ae \u7684 \u6240\u6709 \u503c \u3002 \u8fd9 \u5728 \u5b9a\u4e49 \u6587\u4ef6 \u65f6 \u975e\u5e38 \u6709\u7528 \uff0c \u5426\u5219 \u53ef\u80fd \u5e94\u8be5 \u7981\u7528 \u3002","title":"\u793a\u4f8b \u63a7\u5236\u5668 \u6587\u4ef6"},{"location":"chrono/vehicle_driver/#_6","text":"\u6240\u6709 \u63a7\u5236 \u63a7\u5236\u5668 \u5904\u7406 \u90fd \u4e0e IrrLicht \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u60a8 \u9700\u8981 \u4f7f\u7528 \u5b83 \u6765 \u5b9e\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u4e5f \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7ee7\u627f \u4e86 IrrLicht \u5904\u7406 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6240\u6709 \u9650\u5236 \u3002 \u8fd9 \u4e3b\u8981 \u53cd\u6620 \u5728 \u6bcf\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \u652f\u6301 \u7684 \u6309\u94ae \u6570\u91cf \u4e0a \uff0c \u4f46 \u4e5f \u53ef\u80fd \u5b58\u5728 \u5176\u4ed6 \u9650\u5236 \u3002","title":"\u5f53\u524d \u5b9e\u65bd \u7684 \u5c40\u9650\u6027"},{"location":"chrono/vehicle_driver/#_7","text":"\u4e00\u4e9b \u91cd\u8981 \u7684 \u8f66\u8f86 \u6d4b\u8bd5 \u64cd\u4f5c \u57fa\u4e8e \u65f6\u95f4 \u76f8\u5173 \u7684 \u8f6c\u5411 / \u6cb9\u95e8 / \u5236\u52a8 \u4fe1\u53f7 \u3002 \u4e0d \u8003\u8651 \u4efb\u4f55 \u7c7b\u578b \u7684 \u53cd\u9988 \u3002 \u6b64 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u6a21\u578b \u5728 ChDataDriver \u4e2d \u5b9e\u73b0 \u3002 \u5e26\u6709 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \u7684 ASCII \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u5305\u542b \u56db\u5217 \uff0c \u5206\u522b \u4e3a \u65f6\u95f4 \uff08 s \uff09 \u3001 \u8f6c\u5411 \u8f93\u5165 \uff08 \u65e0\u91cf \u7eb2\u91cf \uff0c \u5355\u4f4d \u4e3a [ \u2212 1 , 1 ] \uff0c \u548c \u2212 1 \u8868\u793a \u5411 \u5de6 \u5b8c\u5168 \u8f6c\u5411 \uff09 \u3001 \u6cb9\u95e8 \u8f93\u5165 \uff08 \u65e0\u91cf \u7eb2\u91cf [ 0 , 1 ] \uff0c \u548c 1 \u8868\u793a \u5168 \u6cb9\u95e8 \uff09 \u548c \u5236\u52a8 \uff08 \u65e0\u91cf \u7eb2\u91cf \u4ecb\u4e8e [ 0 , 1 ] \uff0c \u548c 1 \u8868\u793a \u6700\u5927 \u5236 \u52a8\u529b \uff09 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u793a\u4f8b \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.5 0.0 0.0 3.0 0.0 0.5 0.0 0.0 5.0 0.5 0.4 0.0 0.0 9.0 0.0 0.0 1.0 0.0 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \uff0c \u5f53\u524d \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \uff08 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \uff09 \u90fd \u662f \u901a\u8fc7 \u5bf9 \u63d0\u4f9b \u7684 \u6570\u636e \u8fdb\u884c \u5206\u6bb5 \u7ebf\u6027 \u63d2\u503c \u7ebf\u6027\u63d2\u503c \u83b7\u5f97 \u7684 \u3002 \u9664\u4e86 \u6700\u540e \u4e00\u6b21 \u8f93\u5165 \u4e4b\u5916 \uff0c \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \u5c06 \u4fdd\u6301 \u4e3a \u5176 \u6700\u540e \u4e00\u4e2a \u503c \u3002","title":"\u57fa\u4e8e \u6570\u636e \uff08 \u5f00\u73af \uff09 \u7684 \u9a71\u52a8\u5668"},{"location":"chrono/vehicle_driver/#_8","text":"\u95ed\u73af \u9a71\u52a8 \u9a71\u52a8\u5668 \u6a21\u578b \u9700\u8981 \u63a7\u5236 \u7b56\u7565 \u63a7\u5236\u7b56\u7565 \u5e76 \u8003\u8651 \u53cd\u9988 \u3002 \u53cd\u9988 \u53ef\u80fd \u5bfc\u81f4 \u4e0d \u7a33\u5b9a \u7684 \u884c\u4e3a \uff0c \u56e0\u6b64 \u5fc5\u987b \u660e\u667a \u660e\u667a\u5730 \u9009\u62e9 \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u793a\u4f8b \u53c2\u6570 \u5df2 \u5728 \u5e7f\u6cdb \u7684 \u7528\u9014 \u4e2d \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \u3002 \u7528\u6237 \u5e94\u4ece \u7ed9\u5b9a \u7684 \u793a\u4f8b \u53c2\u6570 \u96c6 \u4e4b\u4e00 \u5f00\u59cb \uff0c \u5e76 \u4ec5 \u5728 \u5fc5\u8981 \u65f6 \u8fdb\u884c \u4fee\u6539 \u3002","title":"\u95ed\u73af \u9a71\u52a8 \u6a21\u578b"},{"location":"chrono/vehicle_driver/#_9","text":"\u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u9075\u5faa \u7ed9\u5b9a \u7684 \u8def\u5f84 \uff0c \u5fc5\u987b \u6d4b\u91cf \u6a2a\u5411 \u8def\u5f84 \u504f\u5dee \u5e76 \u751f\u6210 \u4f7f \u504f\u5dee \u6700\u5c0f \u6700\u5c0f\u5316 \u7684 \u65b9\u5411 \u65b9\u5411\u76d8 \u89d2\u5ea6 \u3002 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e00\u4e2a \u5468\u77e5 \u4f17\u6240\u5468\u77e5 \u7684 \u65b9\u6cd5 \u662f PID \u63a7\u5236 \u63a7\u5236\u5668 \uff08 P = \u6bd4\u4f8b \u3001 I = \u79ef\u5206 \u3001 D = \u5fae\u5206 \uff09 \u3002 \u91c7\u7528 \u7eaf P \u53d8\u91cf \uff0c \u53ea \u9700 \u8bbe\u7f6e P \u589e\u76ca \u3002 \u8fd9 \u5728 \u8bb8\u591a \u60c5\u51b5 \u4e0b \u90fd \u6709\u6548 \uff0c \u4f46\u7eaf P \u63a7\u5236 \u63a7\u5236\u5668 \u6c38\u8fdc \u65e0\u6cd5 \u5c06 \u6a2a\u5411 \u504f\u5dee \u964d\u81f3 \u96f6 \u3002 \u6b8b\u4f59 \u504f\u5dee \u968f P \u589e\u76ca \u7684 \u589e\u52a0 \u800c \u51cf\u5c0f \u3002 \u5982\u679c P \u589e\u76ca \u592a \u5927 \uff0c \u8f66\u8f86 \u5c06 \u5f00\u59cb \u56f4\u7ed5 \u6240 \u9700 \u7684 \u8f66\u8f86 \u8def\u5f84 \u632f\u8361 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 I \u589e\u76ca \u8bbe\u7f6e \u4e3a P \u589e\u76ca \u7684 5% \u5230 10% \u5de6\u53f3 \u7684 \u503c\u6765 \u6d88\u9664 \u6b8b\u4f59 \u8def\u5f84 \u504f\u5dee \u3002 \u901a\u8fc7 \u8bbe\u7f6e D \u589e\u76ca \uff0c \u5982\u679c \u53d1\u751f \u8def\u5f84 \u632f\u8361 \uff0c \u53ef\u4ee5 \u65bd\u52a0 \u963b\u5c3c \u3002 \u5982\u679c \u4f7f\u7528 I \u589e\u76ca \uff0c \u6a21\u62df \u64cd\u4f5c \u4e0d \u5e94 \u8d85\u8fc7 \u7ea6 2 \u5206\u949f \u3002 \u5982\u679c \u9700\u8981 \u66f4 \u591a \u65f6\u95f4 \uff0c \u5219 \u5e94 \u6bcf 2 \u5206\u949f \u91cd\u7f6e \u4e00\u6b21 \u63a7\u5236 \u63a7\u5236\u5668 \u72b6\u6001 \u4ee5 \u907f\u514d \u4e0d \u7a33\u5b9a \u3002 \u4e0b\u56fe \uff08 \u7ef4\u57fa \u767e\u79d1 \u7ef4\u57fa\u767e \u7ef4\u57fa\u767e\u79d1 \uff09 \u5c55\u793a \u4e86 Chrono \u5982\u4f55 \u5b9e\u73b0 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff1a r ( t ) = \u6240 \u9700 \u8def\u5f84 \u4fe1\u53f7 e ( t ) = \u6a2a\u5411 \u8def\u5f84 \u504f\u5dee y ( t ) = \u5b9e\u9645 \u8def\u5f84 \u4fe1\u53f7 u ( t ) = \u8f6c\u5411 \u4fe1\u53f7 \u6b64 \u56fe\u8868 \uff08 \u7ef4\u57fa \u767e\u79d1 \u7ef4\u57fa\u767e \u7ef4\u57fa\u767e\u79d1 \uff09 \u663e\u793a \u4e86 \u589e\u76ca \u56e0\u7d20 \u7684 \u5f71\u54cd \uff1a \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u4e0d\u4ec5 \u4f1a \u5bf9 \u504f\u5dee \u53d8\u5316 \u505a\u51fa \u53cd\u5e94 \uff0c \u8fd8 \u80fd \u8fdb\u884c \u9884\u6d4b \u3002 \u5728 Chrono \u4e2d \uff0c \u8fd9\u79cd \u80fd\u529b \u662f \u901a\u8fc7 \u5728 \u8f66\u8eab \u524d\u65b9 \u8bbe\u7f6e \u4e00\u4e2a \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u6765 \u6d4b\u91cf \u504f\u5dee \u6765 \u6a21\u62df \u7684 \u3002 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u4e0e \u8f66\u8f86 \u53c2\u8003 \u7cfb\u7edf \u7684 \u8ddd\u79bb \u79f0\u4e3a \u524d\u89c6 \u8ddd\u79bb \uff0c \u662f \u91cd\u8981 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u8f93\u5165 \u53c2\u6570 \u3002 \u671f\u671b \u8def\u5f84 \u4ee5 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u6307\u5b9a \uff08 \u53c2\u89c1 ChBezierCurve \uff09 \u3002 \u8bef\u5dee \u5b9a\u4e49 \u4e3a \u201c \u54e8\u5175 \u70b9 \u201d \uff08 \u4f4d\u4e8e \u8f66\u8f86 \u524d\u8fdb \u65b9\u5411 \u524d\u8fdb\u65b9\u5411 \u524d\u89c6 \u8ddd\u79bb \u8ddd\u79bb\u5904 \u7684 \u70b9 \uff09 \u4e0e \u201c \u76ee\u6807 \u70b9 \u201d \uff08 \u54e8\u5175 \u70b9 \u5728 \u671f\u671b \u8def\u5f84 \u4e0a \u7684 \u6295\u5f71 \uff09 \u4e4b\u95f4 \u7684 \u504f\u5dee \u3002","title":"\u8def\u5f84 \u8ddf\u968f \u63a7\u5236\u5668"},{"location":"chrono/vehicle_driver/#_10","text":"\u4e3a\u4e86 \u4fdd\u6301 \u7ed9\u5b9a \u7684 \u8f66\u901f \uff0c \u53ef\u4ee5 \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u4e0e \u8def\u5f84 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \uff0c \u5b83 \u4f7f\u7528 \u901f\u5ea6 \u504f\u5dee \u800c \u4e0d\u662f \u6a2a\u5411 \u8def\u5f84 \u504f\u5dee \u3002 r ( t ) = \u6240 \u9700 \u901f\u5ea6 \u4fe1\u53f7 e ( t ) = \u901f\u5ea6 \u504f\u5dee y ( t ) = \u5b9e\u9645 \u901f\u5ea6 \u4fe1\u53f7 u ( t ) = \u6cb9\u95e8 / \u5239\u8f66 \u4fe1\u53f7 ChPathFollowerDriver \u7c7b \u5b9e\u73b0 \u4e86 PID \u6a2a\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u4e0e PID \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u7ed3\u5408 \u3002 \u5b83 \u5728 \u53cc \u8f66\u9053 \u53d8\u6362 \u7b49 \u6781\u7aef \u64cd\u4f5c \u4e2d \u6548\u679c \u5f88 \u597d \u3002 \u6807\u51c6 \u9053\u8def \u9a7e\u9a76 \u64cd\u4f5c \u7684 \u4e00\u4e2a \u6709\u8da3 \u66ff\u4ee3 \u65b9\u6848 \u662f ChPathFollowerDriverSR \u3002 \u5b83 \u6709 \u4e00\u4e2a PID \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4f46 \u91c7\u7528 \u8003\u8651 \u4eba \u548c \u8f66\u8f86 \u7279\u6027 \u7684 \u6a2a\u5411 \u63a7\u5236 \u7b56\u7565 \u63a7\u5236\u7b56\u7565 \u3002 \u9884\u6d4b \u4f7f\u7528 \u524d\u77bb \u65f6\u95f4 \u800c \u4e0d\u662f \u524d\u77bb \u8ddd\u79bb \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6709\u6548 \u524d\u77bb \u8ddd\u79bb \u968f \u901f\u5ea6 \u800c \u53d8\u5316 \u3002","title":"\u6052\u901f \u63a7\u5236\u5668"},{"location":"chrono/vehicle_driver/#_11","text":"\u6052\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u9002\u7528 \u4e8e \u8bb8\u591a \u6807\u51c6 \u9a7e\u9a76 \u64cd\u4f5c \u3002 \u5bf9\u4e8e \u5728 \u957f \u800c \u5f2f\u66f2 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \uff0c \u8f66\u8f86 \u5728 \u6574\u4e2a \u8fc7\u7a0b \u4e2d \u884c\u9a76 \u7684 \u901f\u5ea6 \u4ee4\u4eba \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u3002 \u9488\u5bf9 \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5df2\u7ecf \u5f00\u53d1 \u4e86 ChHumanDriver \u7c7b \u3002 \u6a2a\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u548c \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u4f7f\u7528 \u4eba\u7c7b \u884c\u4e3a \u3001 \u8f66\u8f86 \u5c5e\u6027 \u548c \u9884\u671f \u4ee5\u53ca \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u89c6\u91ce \u3002 \u6a2a\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u4e0e ChPathFollowerDriverSR \u4e2d \u5b9e\u73b0 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u540c \u3002","title":"\u6700\u4f73 \u901f\u5ea6 \u63a7\u5236\u5668"},{"location":"chrono/vehicle_models/","text":"\u8f66\u8f86 \u6a21\u578b \u8f6e\u5f0f \u8f66\u8f86 \u6a21\u578b \u608d\u9a6c HMMWV \u4ee3\u8868 \u9ad8 \u673a\u52a8 \u673a\u52a8\u6027 \u591a\u7528 \u7528\u9014 \u591a\u7528\u9014 \u8f6e\u5f0f \u8f66\u8f86 \u7cfb\u5217 \u3002 Chrono \u793a\u4f8b \u5c55\u793a \u4e86 M966 \u90e8\u961f \u8fd0\u8f93 \u8fd0\u8f93\u8f66 \u3002 \u4e0e \u771f\u5b9e \u8f66\u8f86 \u4e00\u6837 \uff0c \u5b83 \u5728 \u4e24\u4e2a \u8f66\u8f74 \u4e0a \u90fd \u91c7\u7528 \u53cc\u53c9\u81c2 \u60ac\u67b6 \uff0c \u6240\u6709 \u8f66\u8f6e \u90fd \u53ef\u4ee5 \u9a71\u52a8 \u3002 \u5b83 \u6709 \u4e00\u4e2a \u5e26 \u53d8\u77e9\u5668 \u7684 \u4e09\u6863 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u548c \u4e00\u4e2a \u903c\u771f \u7684 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7cfb\u7edf \u5b50\u7cfb\u7edf \u3002 \u5b83 \u91c7\u7528 \u8f6c\u5411 \u81c2 \u8f6c\u5411 \u3002 \u8be5 \u6a21\u578b \u53ef\u4ee5 \u4f7f\u7528 Chrono \u63d0\u4f9b \u7684 \u6240\u6709 \u7c7b\u578b \u7684 \u8f6e\u80ce \u3002 \u8054\u90a6 \u5f00\u53d1 \u5f00\u53d1\u7f72 FED ALPHA \u662f \u4e00\u6b3e \u7531 \u5de5\u7a0b \u516c\u53f8 \u91cc\u5361 \u5361\u591a \u91cc\u5361\u591a \u4e0e \u7f8e\u56fd \u519b\u65b9 \u5408\u4f5c \u5f00\u53d1 \u5408\u4f5c\u5f00\u53d1 \u7684 \u6982\u5ff5 \u6982\u5ff5\u8f66 \u3002 Chrono : : Vehicle FEDA \u662f \u4e00\u6b3e 4WD \u8f66\u578b \uff0c \u914d\u5907 \u53cc\u53c9\u81c2 \u524d\u540e \u60ac\u67b6 \u3001 \u9632\u503e\u6746 \u548c \u8f6c\u5411 \u81c2 \u8f6c\u5411 \u673a\u6784 \u3002 \u76ee\u524d \u4ec5 \u5b9e\u65bd Pacejka 2002 \u548c \u521a\u6027 \u8f6e\u80ce \u8f66\u578b \u3002 \u8f7f\u8f66 \u8f7f\u8f66 \u793a\u4f8b \u5c55\u793a \u4e86 \u4e00\u6b3e \u666e\u901a \u7684 \u7528\u8f66 \u4e58\u7528\u8f66 \u3002 \u5b83 \u5728 \u524d\u8f74 \u4e0a \u91c7\u7528 \u53cc\u53c9\u81c2 \u60ac\u67b6 \uff0c \u5728 \u540e\u8f74 \u4e0a \u91c7\u7528 \u591a \u8fde\u6746 \u60ac\u67b6 \u3002 \u8f6c\u5411 \u7cfb\u7edf \u4e3a \u9f7f\u6761 \u9f7f\u8f6e \u5f0f \u3002 \u57ce\u5e02 \u5df4\u58eb \u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c Citybus \u662f \u4e00\u6b3e \u5178\u578b \u7684 \u5df4\u58eb \uff0c \u5728 \u4e16\u754c \u6bcf\u4e2a \u57ce\u5e02 \u90fd \u80fd \u627e\u5230 \u3002 \u4e0e \u6240\u6709 \u91cd\u578b \u8f66\u8f86 \u4e00\u6837 \uff0c \u5b83 \u4f7f\u7528 \u677f\u7c27 \u5b9e\u5fc3 \u8f74 \u3002 Chrono \u677f\u7c27 \u8f74 \u57fa\u4e8e \u529f\u80fd \u65b9\u6cd5 \u3002 \u56e0\u6b64 \u4e0d\u5230 \u770b\u4e0d\u5230 \u677f\u7c27 \u3002 \u524d\u8f6e \u7531 \u65cb\u8f6c \u81c2 \u8f6c\u5411 \uff0c \u8fd9\u79cd \u7ec4\u5408 \u4e5f \u79f0\u4e3a \u524d\u675f \u8f6c\u5411 \u3002 \u8be5 \u6a21\u578b \u8fd8 \u5c55\u793a \u4e86 \u53cc\u8f6e \u7684 \u4f7f\u7528 \u3002 \u8c03\u9891 \u7535\u89c6 \u4e2d\u578b \u6218\u672f \u8f66\u8f86 \u7cfb\u5217 ( FMTV ) \u662f \u5965\u4ec0 \u79d1\u4ec0 \u516c\u53f8 \u76ee\u524d \u751f\u4ea7 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5361\u8f66 \u3002 Chrono \u8f66\u8f86 \u6a21\u578b \u6a21\u578b\u5e93 \u4e3a \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u4e24\u79cd \u53d8\u4f53 \u63d0\u4f9b \u4e86 \u6a21\u578b \uff1a LMTV \uff08 \u8f7b\u578b \u4e2d\u578b \u6218\u672f \u8f66\u8f86 \uff09 \uff0c \u4e00\u8f86 2.5 \u5428\u91cd \u7684 4x4 \u5361\u8f66 MTV \uff08 \u4e2d\u578b \u6218\u672f \u8f66\u8f86 \uff09 \uff0c \u4e00\u8f86 5 \u5428 \u3001 6x4 \u5361\u8f66 \u4e24\u79cd \u8f66\u578b \u5747 \u91c7\u7528 \u677f\u7c27 \u540e\u8f74 \u548c \u5e26 \u8dbe \u6746 \u8f6c\u5411 \u7684 \u677f\u7c27 \u524d\u8f74 \uff0c \u5e76 \u5305\u62ec \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u548c \u8d27\u7269 \u4e4b\u95f4 \u7684 \u626d\u8f6c \u67d4\u987a \u6027 \u6a21\u578b \u3002 MTV \u8f66\u578b \u91c7\u7528 \u5e73\u8861 \u6881\u540e \u8f6c\u5411 \u8f6c\u5411\u67b6 \u3002 \u7537\u4eba MAN \uff08 \u5965\u683c \u683c\u65af \u5965\u683c\u65af\u5821 \u7ebd\u4f26\u5821 \u673a\u68b0 \u5236\u9020 \u5236\u9020\u5382 \uff09 Kat 1 \u5361\u8f66 \u7cfb\u5217 \u4e13 \u4e3a \u6218\u672f \u8d8a\u91ce \u4f7f\u7528 \u800c \u8bbe\u8ba1 \u3002 \u6240\u6709 \u7cfb\u5217 \u6210\u5458 \u5747 \u91c7\u7528 \u7531 \u8fde\u6746 \u5f15\u5bfc \u7684 \u87ba\u65cb \u5f39\u7c27 \u87ba\u65cb\u5f39\u7c27 \u5b9e\u5fc3 \u8f74 \u7cfb\u7edf \u3002 \u8fd9\u79cd \u8bbe\u8ba1 \u5141\u8bb8 \u975e\u5e38 \u9ad8 \u7684 \u8f66\u8f6e \u884c\u7a0b \u3002 \u8f66\u8f86 \u6846\u67b6 \u4e3a \u7bb1\u5f62 \uff0c \u56e0\u6b64 \u6a21\u578b \u53ef\u4ee5 \u4f7f\u7528 \u521a\u6027 \u5e95\u76d8 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5728 \u771f\u5b9e \u8f66\u8f86 \u4e2d \u51e0\u4e4e \u6ca1\u6709 \u8f66\u67b6 \u626d\u8f6c \u3002 \u6240\u6709 \u8f6c\u5411 \u8f74 \u90fd \u914d\u6709 \u6447\u81c2 / \u65cb\u8f6c \u81c2 \u673a\u6784 \u3002 \u6240\u6709 \u8f66\u8f6e \u5747 \u7531 \u9a71\u52a8 \u3002 \u5b83 \u6700\u521d \u662f \u4e3a \u5fb7\u56fd \u56fd\u8054 \u8054\u90a6 \u5fb7\u56fd\u8054\u90a6 \u56fd\u9632 \u9632\u519b \u56fd\u9632\u519b \u8bbe\u8ba1 \u7684 \uff0c \u4eca\u5929 \u5728\u4e16 \u4e16\u754c \u5728\u4e16\u754c\u4e0a \u7684 \u8bb8\u591a \u519b\u961f \u4e2d \u90fd \u53ef\u4ee5 \u627e\u5230 \u5b83 \uff0c \u4f8b\u5982 \u5728 \u7f8e\u56fd \u9646\u519b \u56fd\u9646\u519b \u7f8e\u56fd\u9646\u519b \u4e2d \u4f5c\u4e3a M1001 \u52a8\u673a \u539f\u52a8\u673a \u6216 M1002 \u56de\u6536 \u8f66 \u3002 5t \uff08 \u8f7d\u91cd \u91cd\u91cf \u8f7d\u91cd\u91cf \uff09 \u5361\u8f66 \u662f \u8be5 \u5bb6\u65cf \u4e2d \u6700\u5c0f \u7684 \u6210\u5458 \u3002 7t \u5361\u8f66 \u662f \u914d\u7f6e \u6700 \u591a\u6837 \u591a\u6837\u5316 \u7684 \u5361\u8f66 \uff0c \u53ef \u7528\u4e8e \u8fd0\u8f7d \u7279\u6b8a \u8bbe\u5907 \u6216 \u4f5c\u4e3a \u81ea\u5378 \u5378\u8f66 \u81ea\u5378\u8f66 \u3002 \u5728 Chrono \u4e2d \uff0c \u5b83 \u53ea\u6709 \u4e00\u4e2a \u8f7d\u8d27 \u5e8a \u3002 10t \u5361\u8f66 \u662f 70 \u5e74\u4ee3 \u672b \u6295\u5165 \u4f7f\u7528 \u6295\u5165\u4f7f\u7528 \u7684 \u6700\u65e9 \u7684 \u8f66\u578b \u3002 \u5b83\u4eec \u5927\u591a \u7528\u4f5c \u8fd0\u8f93 \u5361\u8f66 \uff0c \u4e00\u4e9b \u8fd8 \u914d\u5907 \u4e86 \u88c5\u8f7d \u8d77\u91cd \u91cd\u673a \u8d77\u91cd\u673a \u3002 \u514b\u5170 \u4e4c\u514b\u5170 \u963f\u65af UAZ \u4ee3\u8868 \u4e4c\u91cc \u8bfa\u592b \u4e4c\u91cc\u626c\u8bfa\u592b \u65af\u57fa \u6c7d\u8f66 \u5236\u9020 \u5236\u9020\u5382 \u3002 UAZ 452 \u578b \u5ba2\u8f66 / \u53a2\u5f0f \u8d27\u8f66 / \u5361\u8f66 \u81ea 1965 \u5e74 \u4ee5\u6765 \u5728 \u7f57\u65af \u4fc4\u7f57\u65af \u4e00\u76f4 \u5f88 \u6b22\u8fce \u53d7\u6b22\u8fce \u3002 \u5b83 \u91c7\u7528 \u5168\u8f6e \u9a71\u52a8 \uff0c \u914d\u6709 \u4e24\u4e2a \u677f\u7c27 \u8f66\u8f74 \u3002 \u524d\u8f74 \u914d\u6709 \u524d\u675f \u8f6c\u5411 \u673a\u6784 \u3002 UAZ 469 \u5409\u666e \u5409\u666e\u8f66 \u81ea 1965 \u5e74 \u4ee5\u6765 \u4e00\u76f4 \u670d\u5f79 \u4e8e \u82cf\u8054 \u519b\u961f \u3002 \u5b83 \u4e0e UAZ 452 \u5171\u4eab \u8bb8\u591a \u90e8\u4ef6 \uff08 \u8f66\u8f74 \u3001 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \uff09 \u3002 \u8f6c\u5411 \u7cfb\u7edf \u4e5f \u662f \u524d\u675f / \u65cb\u8f6c \u81c2\u5f0f \uff0c \u4f46 \u914d\u7f6e \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \u3002 \u9cc4\u9c7c Tha Gator \u662f \u4e00\u6b3e \u914d\u5907 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u7684 John Deere \u7535\u52a8 \u591a\u7528 \u7528\u9014 \u591a\u7528\u9014 \u8f66 \u3002 Gator \u8f66\u578b \u524d\u90e8 \u91c7\u7528 \u5355\u53c9\u81c2 \u60ac\u67b6 \uff0c \u540e\u90e8 \u91c7\u7528 \u521a\u6027 \u8f74 \u3002 \u5b83 \u91c7\u7528 \u9f7f\u6761 \u9f7f\u8f6e \u8f6c\u5411 \u673a\u6784 \uff0c \u4ec5 \u5728 \u540e\u8f6e \u4e0a \u5236\u52a8 \u3002 \u7535\u52a8 \u52a8\u673a \u7535\u52a8\u673a \u901a\u8fc7 \u5dee\u901f \u5dee\u901f\u5668 \u8fde\u63a5 \u5230 \u540e\u8f6e \u3002 \u514b\u62c9 \u5179 \u8be5\u8f66 \u578b \u57fa\u4e8e \u514b\u5170 \u4e4c\u514b\u5170 Kraz 64431 \uff0c \u662f \u4e00\u6b3e \u534a\u6302 \u5361\u8f66 \u3002 \u7275\u5f15 \u7275\u5f15\u8f66 \u91c7\u7528 \u524d\u53c9 \u677f\u7c27 \u5f0f \u60ac\u67b6 \uff0c \u901a\u8fc7 \u65cb\u8f6c \u81c2 \u673a\u6784 \u8f6c\u5411 \uff0c \u540e \u60ac\u67b6 \u4e3a \u4e24\u4e2a \u677f\u7c27 \u5f0f \u3002 \u7275\u5f15 \u7275\u5f15\u8f66 \u4e3a 6x4 \u914d\u7f6e \uff0c \u4e24\u4e2a \u540e\u8f74 \u9a71\u52a8 \u3002 \u62d6\u8f66 \u901a\u8fc7 \u6302\u94a9 \u4e0e \u7275\u5f15 \u7275\u5f15\u8f66 \u76f8\u8fde \uff0c \u6709 \u4e09\u4e2a \u8f74 \uff0c \u5747 \u4e3a \u677f\u7c27 \u5f0f \u3002 \u9065\u63a7 \u9065\u63a7\u8f66 \u8fd9\u662f \u4e00\u4e2a \u5c0f\u578b \u9065\u63a7 \u56db\u8f6e \u9a71\u52a8 \u56db\u8f6e\u9a71\u52a8 \u8f66 \u7684 \u6a21\u578b \u3002 \u901a\u7528 \u8f6e\u5f0f \u8f66\u8f86 \u901a\u7528 \u8f6e\u5f0f \u8f66\u8f86 \u6a21\u578b \u662f \u7528\u4e8e \u6d4b\u8bd5 \u5404\u79cd \u6a21\u677f \u548c \u8bbe\u7f6e \u7684 \u6c99\u7bb1 \u3002 \u5b83 \u4e0d \u4ee3\u8868 \u4efb\u4f55 \u7279\u5b9a \u8f66\u8f86 \uff0c \u5e76\u4e14 \u4e3a\u6b64 \u6a21\u578b \u63d0\u4f9b \u7684 \u6240\u6709 \u5177\u4f53 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u4e0d \u4e00\u5b9a \u5f7c\u6b64 \u4e00\u81f4 \u3002","title":"\u8f66\u8f86 \u6a21\u578b"},{"location":"chrono/vehicle_models/#_1","text":"","title":"\u8f66\u8f86 \u6a21\u578b"},{"location":"chrono/vehicle_models/#_2","text":"","title":"\u8f6e\u5f0f \u8f66\u8f86 \u6a21\u578b"},{"location":"chrono/vehicle_models/#_3","text":"HMMWV \u4ee3\u8868 \u9ad8 \u673a\u52a8 \u673a\u52a8\u6027 \u591a\u7528 \u7528\u9014 \u591a\u7528\u9014 \u8f6e\u5f0f \u8f66\u8f86 \u7cfb\u5217 \u3002 Chrono \u793a\u4f8b \u5c55\u793a \u4e86 M966 \u90e8\u961f \u8fd0\u8f93 \u8fd0\u8f93\u8f66 \u3002 \u4e0e \u771f\u5b9e \u8f66\u8f86 \u4e00\u6837 \uff0c \u5b83 \u5728 \u4e24\u4e2a \u8f66\u8f74 \u4e0a \u90fd \u91c7\u7528 \u53cc\u53c9\u81c2 \u60ac\u67b6 \uff0c \u6240\u6709 \u8f66\u8f6e \u90fd \u53ef\u4ee5 \u9a71\u52a8 \u3002 \u5b83 \u6709 \u4e00\u4e2a \u5e26 \u53d8\u77e9\u5668 \u7684 \u4e09\u6863 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u548c \u4e00\u4e2a \u903c\u771f \u7684 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7cfb\u7edf \u5b50\u7cfb\u7edf \u3002 \u5b83 \u91c7\u7528 \u8f6c\u5411 \u81c2 \u8f6c\u5411 \u3002 \u8be5 \u6a21\u578b \u53ef\u4ee5 \u4f7f\u7528 Chrono \u63d0\u4f9b \u7684 \u6240\u6709 \u7c7b\u578b \u7684 \u8f6e\u80ce \u3002","title":"\u608d\u9a6c"},{"location":"chrono/vehicle_models/#_4","text":"FED ALPHA \u662f \u4e00\u6b3e \u7531 \u5de5\u7a0b \u516c\u53f8 \u91cc\u5361 \u5361\u591a \u91cc\u5361\u591a \u4e0e \u7f8e\u56fd \u519b\u65b9 \u5408\u4f5c \u5f00\u53d1 \u5408\u4f5c\u5f00\u53d1 \u7684 \u6982\u5ff5 \u6982\u5ff5\u8f66 \u3002 Chrono : : Vehicle FEDA \u662f \u4e00\u6b3e 4WD \u8f66\u578b \uff0c \u914d\u5907 \u53cc\u53c9\u81c2 \u524d\u540e \u60ac\u67b6 \u3001 \u9632\u503e\u6746 \u548c \u8f6c\u5411 \u81c2 \u8f6c\u5411 \u673a\u6784 \u3002 \u76ee\u524d \u4ec5 \u5b9e\u65bd Pacejka 2002 \u548c \u521a\u6027 \u8f6e\u80ce \u8f66\u578b \u3002","title":"\u8054\u90a6 \u5f00\u53d1\u7f72"},{"location":"chrono/vehicle_models/#_5","text":"\u8f7f\u8f66 \u793a\u4f8b \u5c55\u793a \u4e86 \u4e00\u6b3e \u666e\u901a \u7684 \u7528\u8f66 \u4e58\u7528\u8f66 \u3002 \u5b83 \u5728 \u524d\u8f74 \u4e0a \u91c7\u7528 \u53cc\u53c9\u81c2 \u60ac\u67b6 \uff0c \u5728 \u540e\u8f74 \u4e0a \u91c7\u7528 \u591a \u8fde\u6746 \u60ac\u67b6 \u3002 \u8f6c\u5411 \u7cfb\u7edf \u4e3a \u9f7f\u6761 \u9f7f\u8f6e \u5f0f \u3002","title":"\u8f7f\u8f66"},{"location":"chrono/vehicle_models/#_6","text":"\u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c Citybus \u662f \u4e00\u6b3e \u5178\u578b \u7684 \u5df4\u58eb \uff0c \u5728 \u4e16\u754c \u6bcf\u4e2a \u57ce\u5e02 \u90fd \u80fd \u627e\u5230 \u3002 \u4e0e \u6240\u6709 \u91cd\u578b \u8f66\u8f86 \u4e00\u6837 \uff0c \u5b83 \u4f7f\u7528 \u677f\u7c27 \u5b9e\u5fc3 \u8f74 \u3002 Chrono \u677f\u7c27 \u8f74 \u57fa\u4e8e \u529f\u80fd \u65b9\u6cd5 \u3002 \u56e0\u6b64 \u4e0d\u5230 \u770b\u4e0d\u5230 \u677f\u7c27 \u3002 \u524d\u8f6e \u7531 \u65cb\u8f6c \u81c2 \u8f6c\u5411 \uff0c \u8fd9\u79cd \u7ec4\u5408 \u4e5f \u79f0\u4e3a \u524d\u675f \u8f6c\u5411 \u3002 \u8be5 \u6a21\u578b \u8fd8 \u5c55\u793a \u4e86 \u53cc\u8f6e \u7684 \u4f7f\u7528 \u3002","title":"\u57ce\u5e02 \u5df4\u58eb"},{"location":"chrono/vehicle_models/#_7","text":"\u4e2d\u578b \u6218\u672f \u8f66\u8f86 \u7cfb\u5217 ( FMTV ) \u662f \u5965\u4ec0 \u79d1\u4ec0 \u516c\u53f8 \u76ee\u524d \u751f\u4ea7 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5361\u8f66 \u3002 Chrono \u8f66\u8f86 \u6a21\u578b \u6a21\u578b\u5e93 \u4e3a \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u4e24\u79cd \u53d8\u4f53 \u63d0\u4f9b \u4e86 \u6a21\u578b \uff1a LMTV \uff08 \u8f7b\u578b \u4e2d\u578b \u6218\u672f \u8f66\u8f86 \uff09 \uff0c \u4e00\u8f86 2.5 \u5428\u91cd \u7684 4x4 \u5361\u8f66 MTV \uff08 \u4e2d\u578b \u6218\u672f \u8f66\u8f86 \uff09 \uff0c \u4e00\u8f86 5 \u5428 \u3001 6x4 \u5361\u8f66 \u4e24\u79cd \u8f66\u578b \u5747 \u91c7\u7528 \u677f\u7c27 \u540e\u8f74 \u548c \u5e26 \u8dbe \u6746 \u8f6c\u5411 \u7684 \u677f\u7c27 \u524d\u8f74 \uff0c \u5e76 \u5305\u62ec \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u548c \u8d27\u7269 \u4e4b\u95f4 \u7684 \u626d\u8f6c \u67d4\u987a \u6027 \u6a21\u578b \u3002 MTV \u8f66\u578b \u91c7\u7528 \u5e73\u8861 \u6881\u540e \u8f6c\u5411 \u8f6c\u5411\u67b6 \u3002","title":"\u8c03\u9891 \u7535\u89c6"},{"location":"chrono/vehicle_models/#_8","text":"MAN \uff08 \u5965\u683c \u683c\u65af \u5965\u683c\u65af\u5821 \u7ebd\u4f26\u5821 \u673a\u68b0 \u5236\u9020 \u5236\u9020\u5382 \uff09 Kat 1 \u5361\u8f66 \u7cfb\u5217 \u4e13 \u4e3a \u6218\u672f \u8d8a\u91ce \u4f7f\u7528 \u800c \u8bbe\u8ba1 \u3002 \u6240\u6709 \u7cfb\u5217 \u6210\u5458 \u5747 \u91c7\u7528 \u7531 \u8fde\u6746 \u5f15\u5bfc \u7684 \u87ba\u65cb \u5f39\u7c27 \u87ba\u65cb\u5f39\u7c27 \u5b9e\u5fc3 \u8f74 \u7cfb\u7edf \u3002 \u8fd9\u79cd \u8bbe\u8ba1 \u5141\u8bb8 \u975e\u5e38 \u9ad8 \u7684 \u8f66\u8f6e \u884c\u7a0b \u3002 \u8f66\u8f86 \u6846\u67b6 \u4e3a \u7bb1\u5f62 \uff0c \u56e0\u6b64 \u6a21\u578b \u53ef\u4ee5 \u4f7f\u7528 \u521a\u6027 \u5e95\u76d8 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5728 \u771f\u5b9e \u8f66\u8f86 \u4e2d \u51e0\u4e4e \u6ca1\u6709 \u8f66\u67b6 \u626d\u8f6c \u3002 \u6240\u6709 \u8f6c\u5411 \u8f74 \u90fd \u914d\u6709 \u6447\u81c2 / \u65cb\u8f6c \u81c2 \u673a\u6784 \u3002 \u6240\u6709 \u8f66\u8f6e \u5747 \u7531 \u9a71\u52a8 \u3002 \u5b83 \u6700\u521d \u662f \u4e3a \u5fb7\u56fd \u56fd\u8054 \u8054\u90a6 \u5fb7\u56fd\u8054\u90a6 \u56fd\u9632 \u9632\u519b \u56fd\u9632\u519b \u8bbe\u8ba1 \u7684 \uff0c \u4eca\u5929 \u5728\u4e16 \u4e16\u754c \u5728\u4e16\u754c\u4e0a \u7684 \u8bb8\u591a \u519b\u961f \u4e2d \u90fd \u53ef\u4ee5 \u627e\u5230 \u5b83 \uff0c \u4f8b\u5982 \u5728 \u7f8e\u56fd \u9646\u519b \u56fd\u9646\u519b \u7f8e\u56fd\u9646\u519b \u4e2d \u4f5c\u4e3a M1001 \u52a8\u673a \u539f\u52a8\u673a \u6216 M1002 \u56de\u6536 \u8f66 \u3002 5t \uff08 \u8f7d\u91cd \u91cd\u91cf \u8f7d\u91cd\u91cf \uff09 \u5361\u8f66 \u662f \u8be5 \u5bb6\u65cf \u4e2d \u6700\u5c0f \u7684 \u6210\u5458 \u3002 7t \u5361\u8f66 \u662f \u914d\u7f6e \u6700 \u591a\u6837 \u591a\u6837\u5316 \u7684 \u5361\u8f66 \uff0c \u53ef \u7528\u4e8e \u8fd0\u8f7d \u7279\u6b8a \u8bbe\u5907 \u6216 \u4f5c\u4e3a \u81ea\u5378 \u5378\u8f66 \u81ea\u5378\u8f66 \u3002 \u5728 Chrono \u4e2d \uff0c \u5b83 \u53ea\u6709 \u4e00\u4e2a \u8f7d\u8d27 \u5e8a \u3002 10t \u5361\u8f66 \u662f 70 \u5e74\u4ee3 \u672b \u6295\u5165 \u4f7f\u7528 \u6295\u5165\u4f7f\u7528 \u7684 \u6700\u65e9 \u7684 \u8f66\u578b \u3002 \u5b83\u4eec \u5927\u591a \u7528\u4f5c \u8fd0\u8f93 \u5361\u8f66 \uff0c \u4e00\u4e9b \u8fd8 \u914d\u5907 \u4e86 \u88c5\u8f7d \u8d77\u91cd \u91cd\u673a \u8d77\u91cd\u673a \u3002","title":"\u7537\u4eba"},{"location":"chrono/vehicle_models/#_9","text":"UAZ \u4ee3\u8868 \u4e4c\u91cc \u8bfa\u592b \u4e4c\u91cc\u626c\u8bfa\u592b \u65af\u57fa \u6c7d\u8f66 \u5236\u9020 \u5236\u9020\u5382 \u3002 UAZ 452 \u578b \u5ba2\u8f66 / \u53a2\u5f0f \u8d27\u8f66 / \u5361\u8f66 \u81ea 1965 \u5e74 \u4ee5\u6765 \u5728 \u7f57\u65af \u4fc4\u7f57\u65af \u4e00\u76f4 \u5f88 \u6b22\u8fce \u53d7\u6b22\u8fce \u3002 \u5b83 \u91c7\u7528 \u5168\u8f6e \u9a71\u52a8 \uff0c \u914d\u6709 \u4e24\u4e2a \u677f\u7c27 \u8f66\u8f74 \u3002 \u524d\u8f74 \u914d\u6709 \u524d\u675f \u8f6c\u5411 \u673a\u6784 \u3002 UAZ 469 \u5409\u666e \u5409\u666e\u8f66 \u81ea 1965 \u5e74 \u4ee5\u6765 \u4e00\u76f4 \u670d\u5f79 \u4e8e \u82cf\u8054 \u519b\u961f \u3002 \u5b83 \u4e0e UAZ 452 \u5171\u4eab \u8bb8\u591a \u90e8\u4ef6 \uff08 \u8f66\u8f74 \u3001 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \uff09 \u3002 \u8f6c\u5411 \u7cfb\u7edf \u4e5f \u662f \u524d\u675f / \u65cb\u8f6c \u81c2\u5f0f \uff0c \u4f46 \u914d\u7f6e \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \u3002","title":"\u4e4c\u514b\u5170 \u963f\u65af"},{"location":"chrono/vehicle_models/#_10","text":"Tha Gator \u662f \u4e00\u6b3e \u914d\u5907 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u7684 John Deere \u7535\u52a8 \u591a\u7528 \u7528\u9014 \u591a\u7528\u9014 \u8f66 \u3002 Gator \u8f66\u578b \u524d\u90e8 \u91c7\u7528 \u5355\u53c9\u81c2 \u60ac\u67b6 \uff0c \u540e\u90e8 \u91c7\u7528 \u521a\u6027 \u8f74 \u3002 \u5b83 \u91c7\u7528 \u9f7f\u6761 \u9f7f\u8f6e \u8f6c\u5411 \u673a\u6784 \uff0c \u4ec5 \u5728 \u540e\u8f6e \u4e0a \u5236\u52a8 \u3002 \u7535\u52a8 \u52a8\u673a \u7535\u52a8\u673a \u901a\u8fc7 \u5dee\u901f \u5dee\u901f\u5668 \u8fde\u63a5 \u5230 \u540e\u8f6e \u3002","title":"\u9cc4\u9c7c"},{"location":"chrono/vehicle_models/#_11","text":"\u8be5\u8f66 \u578b \u57fa\u4e8e \u514b\u5170 \u4e4c\u514b\u5170 Kraz 64431 \uff0c \u662f \u4e00\u6b3e \u534a\u6302 \u5361\u8f66 \u3002 \u7275\u5f15 \u7275\u5f15\u8f66 \u91c7\u7528 \u524d\u53c9 \u677f\u7c27 \u5f0f \u60ac\u67b6 \uff0c \u901a\u8fc7 \u65cb\u8f6c \u81c2 \u673a\u6784 \u8f6c\u5411 \uff0c \u540e \u60ac\u67b6 \u4e3a \u4e24\u4e2a \u677f\u7c27 \u5f0f \u3002 \u7275\u5f15 \u7275\u5f15\u8f66 \u4e3a 6x4 \u914d\u7f6e \uff0c \u4e24\u4e2a \u540e\u8f74 \u9a71\u52a8 \u3002 \u62d6\u8f66 \u901a\u8fc7 \u6302\u94a9 \u4e0e \u7275\u5f15 \u7275\u5f15\u8f66 \u76f8\u8fde \uff0c \u6709 \u4e09\u4e2a \u8f74 \uff0c \u5747 \u4e3a \u677f\u7c27 \u5f0f \u3002","title":"\u514b\u62c9 \u5179"},{"location":"chrono/vehicle_models/#_12","text":"\u8fd9\u662f \u4e00\u4e2a \u5c0f\u578b \u9065\u63a7 \u56db\u8f6e \u9a71\u52a8 \u56db\u8f6e\u9a71\u52a8 \u8f66 \u7684 \u6a21\u578b \u3002","title":"\u9065\u63a7\u8f66"},{"location":"chrono/vehicle_models/#_13","text":"\u901a\u7528 \u8f6e\u5f0f \u8f66\u8f86 \u6a21\u578b \u662f \u7528\u4e8e \u6d4b\u8bd5 \u5404\u79cd \u6a21\u677f \u548c \u8bbe\u7f6e \u7684 \u6c99\u7bb1 \u3002 \u5b83 \u4e0d \u4ee3\u8868 \u4efb\u4f55 \u7279\u5b9a \u8f66\u8f86 \uff0c \u5e76\u4e14 \u4e3a\u6b64 \u6a21\u578b \u63d0\u4f9b \u7684 \u6240\u6709 \u5177\u4f53 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u4e0d \u4e00\u5b9a \u5f7c\u6b64 \u4e00\u81f4 \u3002","title":"\u901a\u7528 \u8f6e\u5f0f \u8f66\u8f86"},{"location":"chrono/vehicle_overview/","text":"\u8f66\u8f86 \u5efa\u6a21 \u4e0e \u4eff\u771f \u6982\u8ff0 Chrono : : Vehicle \u6a21\u5757 \u63d0\u4f9b \u4e86 \u9002\u7528 \u4e8e \u8f6e\u5f0f \u548c \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u5404\u79cd \u62d3\u6251 \u7ed3\u6784 \u7684 \u6a21\u677f \u96c6\u5408 \uff0c \u652f\u6301 \u5bf9 \u521a\u6027 \u3001 \u67d4\u6027 \u548c \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u5730\u5f62 \u8fdb\u884c \u5efa\u6a21 \uff0c \u652f\u6301 \u95ed\u73af \u548c \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u6a21\u578b \uff0c \u4ee5\u53ca \u6a21\u62df \u7ed3\u679c \u7684 \u8fd0\u884c \u65f6 \u548c \u79bb\u7ebf \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8f66\u8f86 \u7cfb\u7edf \u7684 \u5efa\u6a21 \u91c7\u7528 \u6a21\u5757 \u6a21\u5757\u5316 \u65b9\u5f0f \uff0c \u8f66\u8f86 \u5b9a\u4e49 \u4e3a \u5404\u79cd \u7cfb\u7edf \u5b50\u7cfb\u7edf \uff08 \u60ac\u67b6 \u3001 \u8f6c\u5411 \u3001 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u7b49 \uff09 \u5b9e\u4f8b \u7684 \u96c6\u5408 \u3002 \u91c7\u7528 \u57fa\u4e8e \u6a21\u677f \u7684 \u8bbe\u8ba1 \u53ef \u5b9e\u73b0 \u5efa\u6a21 \u7684 \u7075\u6d3b \u6d3b\u6027 \u7075\u6d3b\u6027 \u3002 \u5728 Chrono : : Vehicle \u4e2d \uff0c \u6a21\u677f \u662f \u53c2\u6570 \u5316 \u6a21\u578b \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u7279\u5b9a \u5b9e\u73b0 \u3002 \u56e0\u6b64 \uff0c \u6a21\u677f \u5b9a\u4e49 \u57fa\u672c \u5efa\u6a21 \u5143\u7d20 \uff08 \u8f66\u8eab \u3001 \u5173\u8282 \u3001 \u529b \u5143\u7d20 \uff09 \uff0c \u5f3a\u52a0 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u62d3\u6251 \uff0c \u89c4\u5b9a \u8bbe\u8ba1 \u53c2\u6570 \uff0c \u5e76 \u5b9e\u73b0 \u7279\u5b9a \u4e8e \u7279\u5b9a \u6a21\u677f \uff08 \u4f8b\u5982 \u53cc\u53c9\u81c2 \uff09 \u7684 \u7279\u5b9a \u7c7b\u578b \u7cfb\u7edf \u5b50\u7cfb\u7edf \uff08 \u4f8b\u5982 \u60ac\u67b6 \uff09 \u7684 \u901a\u7528 \u529f\u80fd \u3002 \u6700\u540e \uff0c \u901a\u8fc7 \u4e3a \u5177\u4f53 \u8f66\u8f86 \uff08 \u4f8b\u5982 HMMWV \u60ac\u67b6 \u524d\u60ac\u67b6 \uff09 \u6307\u5b9a \u6a21\u677f \u53c2\u6570 \uff08 \u786c\u70b9 \u3001 \u5173\u8282 \u65b9\u5411 \u3001 \u60ef\u6027 \u5c5e\u6027 \u3001 \u63a5\u89e6 \u6750\u6599 \u5c5e\u6027 \u7b49 \uff09 \u6765 \u83b7\u5f97 \u6b64\u7c7b \u6a21\u677f \u7684 \u5b9e\u4f8b \u3002 Chrono : : Vehicle \u4e2d \u7684 \u6838\u5fc3 \u6a21\u677f \u662f \u8f66\u8f86 \u5b50 \u90e8\u4ef6 \u7684 \u53c2\u6570 \u5316 \u6a21\u578b \u3002 \u4f46\u662f \uff0c \u5b8c\u6574 \u7684 \u8f66\u8f86 \u79fb\u52a8 \u6a21\u62df \u8fd8 \u9700\u8981 \u8f66\u8f86 \u672c\u8eab \u4e4b\u5916 \u7684 \u8f85\u52a9 \u7cfb\u7edf \uff0c \u4f8b\u5982 \u63d0\u4f9b \u8f93\u5165 \u63a7\u5236 \uff08 \u4f8b\u5982 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u3001 \u5236\u52a8 \uff09 \u7684 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u3001 \u5c01\u88c5 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u548c \u53d8\u901f \u53d8\u901f\u7bb1 \u5e76 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u7684 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u4ee5\u53ca \u5730\u5f62 \u7cfb\u7edf \u3002 \u5bf9\u4e8e \u8f6e\u5f0f \u8f66\u8f86 \u7cfb\u7edf \uff0c \u63d0\u4f9b \u4e86 \u4ee5\u4e0b \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u6a21\u677f \uff1a \u60ac\u67b6 \uff08 \u53cc\u53c9\u81c2 \u3001 \u5229\u7528 \u8ddd\u79bb \u7ea6\u675f \u7f29\u77ed \u7684 \u53cc\u53c9\u81c2 \u3001 \u591a \u8fde\u6746 \u3001 \u5b9e\u5fc3 \u8f74 \u3001 \u9ea6\u5f17\u900a\u5f0f \u652f\u67f1 \u3001 \u534a \u62d6\u66f3 \u81c2 \u2026 \u2026 \uff09 \u8f6c\u5411 \uff08 \u8f6c\u5411 \u81c2 \u3001 \u9f7f\u6761 \u9f7f\u8f6e \uff09 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \uff08 2WD \u548c 4WD \u8f74 \u91c7\u7528 \u4e13\u95e8 \u7684 Chrono \u5efa\u6a21 \u5143\u7d20 \uff0c \u7b80\u5316 \u7684 \u8fd0\u52a8 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \uff09 \u8f66\u8f6e \uff08 \u7b80\u5355 \u5730\u8bf4 \uff0c \u662f \u9644\u52a0 \u5728 \u60ac\u67b6 \u4e3b\u8f74 \u4e0a \u7684 \u989d\u5916 \u8d28\u91cf \u548c \u60ef\u6027 \u7684 \u8f7d\u4f53 \uff09 \u5236\u52a8 \u5236\u52a8\u5668 \uff08 \u7b80\u5355 \u6a21\u578b \uff0c \u4f7f\u7528 \u7531 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u5236\u52a8 \u8f93\u5165 \u8c03\u8282 \u7684 \u6052\u5b9a \u626d\u77e9 \uff09 Chrono : : Vehicle \u63d0\u4f9b \u5404\u79cd \u8f6e\u80ce \u6a21\u578b \u548c \u76f8\u5173 \u6a21\u677f \uff0c \u4ece \u521a\u6027 \u8f6e\u80ce \u5230 \u534a \u7ecf\u9a8c \u6a21\u578b \uff08 \u5982 Pacejka \u548c Fiala \uff09 \uff0c \u518d \u5230 \u7528 \u6709\u9650 \u6709\u9650\u5143 \u5efa\u6a21 \u7684 \u5b8c\u5168 \u53ef \u53d8\u5f62 \u8f6e\u80ce \uff08 \u4f7f\u7528 \u7edd\u5bf9 \u8282\u70b9 \u5750\u6807 \u516c\u5f0f \u6216 \u5171 \u65cb\u8f6c \u516c\u5f0f \uff09 \u3002 \u5c65\u5e26 \u677f \uff08 \u5355\u9500\u5f0f \u548c \u53cc\u9500\u5f0f \uff09 \uff1a \u5355\u9500\u5f0f \u5c31\u662f \u4e24\u4e2a \u5c65\u5e26 \u5757 \u76f8\u4e92 \u7ed3\u5408 \u4e4b\u540e \u4ee5 \u4e00\u6839 \u957f \u94a2\u9489 \u8fde\u7ed3 \uff0c \u4e24\u7aef \u56fa\u5b9a \u597d \uff1b \u53cc\u9500\u5f0f \u5c31\u662f \u4e24\u4e2a \u5c65\u5e26 \u5757 \u76f4\u63a5 \u5728 \u4e24\u7aef \u56fa\u5b9a \u63a5\u5408 \u3002 \u76f8\u5173 \u94fe\u8f6e \u6a21\u677f \uff08 \u5e26\u6709 \u76f8\u5e94 \u7684 \u9f7f\u8f6e \u8f6e\u5ed3 \uff09 \u60ac\u67b6 \uff08 \u5e26 \u7ebf\u6027 \u6216 \u65cb\u8f6c \u963b\u5c3c \u963b\u5c3c\u5668 \u7684 \u626d\u8f6c \u5f39\u7c27 \uff0c \u6db2\u538b \uff09 \u60f0\u8f6e \uff08 \u5e26 \u5f20\u7d27 \u673a\u6784 \uff09 \u6eda\u7b52 \u4f5c\u4e3a \u4e2d\u95f4 \u4e2d\u95f4\u4ef6 \u5e93 \uff0c Chrono : : Vehicle \u8981\u6c42 \u7528\u6237 \u63d0\u4f9b C++ \u7c7b\u6765 \u5177\u4f53 \u5b9e\u4f8b \u5316 \u7279\u5b9a \u6a21\u677f \u3002 \u53ef\u9009 \u7684 Chrono \u5e93\u4e3a \u4e00\u4e9b \u5730\u9762 \u8f66\u8f86 \uff08 \u5305\u62ec \u8f6e\u5f0f \u548c \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \uff09 \u63d0\u4f9b \u4e86 \u5b8c\u6574 \u7684 \u6b64\u7c7b \u5177\u4f53 C++ \u7c7b\u96c6 \uff0c \u53ef \u4f5c\u4e3a \u5176\u4ed6 \u7279\u5b9a \u8f66\u8f86 \u6a21\u578b \u7684 \u793a\u4f8b \u3002 \u867d\u7136 \u6b64\u7c7b \u7c7b \u901a\u5e38 \u975e\u5e38 \u8f7b\u91cf \uff0c \u4f46 \u8fd9 \u9700\u8981 \u4e00\u5b9a \u7684 \u7f16\u7a0b \u7ecf\u9a8c \u3002 \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u79cd \u66ff\u4ee3 \u673a\u5236 \u6765 \u5b9a\u4e49 \u8f66\u8f86 \u7cfb\u7edf \u548c \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u677f \u7684 \u5177\u4f53 \u5b9e\u4f8b \uff0c \u8be5 \u673a\u5236 \u57fa\u4e8e JSON \u683c\u5f0f \u7684 \u8f93\u5165 \u89c4\u8303 \u6587\u4ef6 \u3002 \u6839\u636e \u7ed9\u5b9a \u7c7b\u578b \uff08 \u8f6e\u5f0f \u6216 \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \uff09 \u7684 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u677f \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u5177\u4f53 \u6a21\u677f \u53c2\u6570 \u7684 \u76f8\u5e94 JSON \u6587\u4ef6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u6765 \u5b8c\u6574 \u5b9a\u4e49 \u8f66\u8f86 \uff0c \u5426\u5219 \u5c06 \u63a8\u8fdf \u5230\u5b50 \u7ec4\u4ef6 \u7684 \u4e00\u6b65 \u8fdb\u4e00\u6b65 JSON \u89c4\u8303 \u6587\u4ef6 \u3002 \u4ee5\u4e0b \u662f \u8f6e\u5f0f \u8f66\u8f86 \u7684 \u9876\u7ea7 JSON \u89c4\u8303 \u6587\u4ef6 \u7684 \u793a\u4f8b \u3002 \u8fde\u540c \u5b83 \u5f15\u7528 \u7684 \u6240\u6709 \u5176\u4ed6 \u8f93\u5165 \u6587\u4ef6 \uff0c \u6b64 JSON \u6587\u4ef6 \u5b8c\u6574 \u63cf\u8ff0 \u4e86 \u5177\u6709 \u4e24\u4e2a \u8f74 \u7684 \u5177\u4f53 \u8f6e\u5f0f \u8f66\u8f86 \uff0c \u524d\u540e \u5747 \u4f7f\u7528 \u53cc\u53c9\u81c2 \u60ac\u67b6 \uff0c \u524d\u8f74 \u4e0a \u5b89\u88c5 \u6709 \u8f6c\u5411 \u81c2 \u8f6c\u5411 \u673a\u6784 \uff0c \u540e\u8f6e \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u3002 { \" Name \" : \" Test vehicle - Double Wishbone \" , \" Type \" : \" Vehicle \" , \" Template \" : \" WheeledVehicle \" , \" Chassis \" : { \" Input File \" : \" generic / chassis / Chassis . json \" } , \" Axles \" : [ { \" Suspension Input File \" : \" generic / suspension / DoubleWishbone . json \" , \" Suspension Location \" : [ 1.25 , 0 , - 0.21 ] , \" Steering Index \" : 0 , \" Left Wheel Input File \" : \" generic / wheel / WheelSimple . json \" , \" Right Wheel Input File \" : \" generic / wheel / WheelSimple . json \" , \" Left Brake Input File \" : \" generic / brake / BrakeSimple . json \" , \" Right Brake Input File \" : \" generic / brake / BrakeSimple . json \" } , { \" Suspension Input File \" : \" generic / suspension / DoubleWishbone . json \" , \" Suspension Location \" : [ - 1.25 , 0 , - 0.21 ] , \" Left Wheel Input File \" : \" generic / wheel / WheelSimple . json \" , \" Right Wheel Input File \" : \" generic / wheel / WheelSimple . json \" , \" Left Brake Input File \" : \" generic / brake / BrakeSimple . json \" , \" Right Brake Input File \" : \" generic / brake / BrakeSimple . json \" } ] , \" Steering Subsystems \" : [ { \" Input File \" : \" generic / steering / PitmanArm . json \" , \" Location \" : [ 1.1 , 0 , - 0.4 ] , \" Orientation \" : [ 0.98699637 , 0 , 0.16074256 , 0 ] } ] , \" Driveline \" : { \" Input File \" : \" generic / driveline / Driveline2WD . json \" , \" Suspension Indexes \" : [ 1 ] } } \u53c2\u8003 \u6846\u67b6 \u6bcf\u4e2a \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u90fd \u662f \u6839\u636e \u5176 \u81ea\u5df1 \u7684 \u53c2\u8003 \u53c2\u8003\u7cfb \u5b9a\u4e49 \u7684 \uff1b \u6362\u53e5 \u6362\u53e5\u8bdd \u6362\u53e5\u8bdd\u8bf4 \uff0c \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u677f \u4e2d \u7684 \u6240\u6709 \u53d7\u529b \u70b9 \u4f4d\u7f6e \u90fd \u5fc5\u987b \u6839\u636e \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u53c2\u8003 \u53c2\u8003\u7cfb \u63d0\u4f9b \u3002 \u7136\u540e \uff0c \u8f66\u8f86 \u7cfb\u7edf \uff08 \u65e0\u8bba \u65e0\u8bba\u662f \u8f6e\u5f0f \u8fd8\u662f \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \uff09 \u88ab \u6784\u5efa \u4e3a \u5176 \u7ec4\u6210 \u90e8\u4ef6 \u7684 \u5177\u4f53 \u6a21\u677f \u5b9e\u4f8b \u96c6\u5408 \uff0c \u65b9\u6cd5 \u662f \u6307\u5b9a \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u63d0\u4f9b \u8fde\u63a5 \u4fe1\u606f \uff08 \u4f8b\u5982 \uff0c \u5c06 \u7279\u5b9a \u7684 \u8f6c\u5411 \u673a\u6784 \u8fde\u63a5 \u5230 \u8f6e\u5f0f \u8f66\u8f86 \u7684 \u7279\u5b9a \u8f66\u8f74 / \u60ac\u67b6 \uff09 \u3002 \u5bf9\u4e8e \u5efa\u6a21 \uff0c Chrono : : Vehicle \u4ec5 \u4f7f\u7528 ISO \u8f66\u8f86 \u8f74 \u7ea6\u5b9a \uff0c \u5373 \u53f3\u4fa7 \u6846\u67b6 \uff0c X \u5411\u524d \uff0c Z \u5411\u4e0a \uff0c Y \u6307\u5411 \u8f66\u8f86 \u5de6\u4fa7 \uff08 \u53c2\u89c1 ISO 8855 : 2011 \uff09 \u3002 \u4e0b\u56fe \u8bf4\u660e \u4e86 \u8f66\u8f86 \u53c2\u8003 \u53c2\u8003\u7cfb $ O _ 1 $ \uff08 \u6309\u7167 \u60ef\u4f8b \u4e0e \u5e95\u76d8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u53c2\u8003 \u53c2\u8003\u7cfb \u5bf9\u9f50 \uff09 \uff0c \u4ee5\u53ca \u7cfb\u7edf \u5b50\u7cfb\u7edf \u53c2\u8003 \u53c2\u8003\u7cfb \uff08 $ O _ 2 ^ ' $ \u548c $ O _ 2 ^ { ' ' } $ \u8868\u793a \u524d\u540e \u60ac\u67b6 \uff0c $ O _ 3 $ \u8868\u793a \u8f6c\u5411 \u673a\u6784 \uff09 \uff0c \u9002\u7528 \u4e8e \u53cc\u8f74 \u8f6e\u5f0f \u8f66\u8f86 \u3002 \u6a21\u62df \u4e16\u754c \u6846\u67b6 \u867d\u7136 Chrono : : Vehicle \u6a21\u62df \u7684 \u9ed8\u8ba4 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u4e5f \u662f ISO \uff08 Z \u5411\u4e0a \uff09 \u5750\u6807 \u5750\u6807\u7cfb \uff0c \u4f46 \u652f\u6301 \u6a21\u62df \u5728 \u4e0d\u540c \u53c2\u8003 \u5750\u6807 \u5750\u6807\u7cfb \uff08 \u4f8b\u5982 Y \u5411\u4e0a \u5750\u6807 \u5750\u6807\u7cfb \uff09 \u4e2d \u6307\u5b9a \u7684 \u573a\u666f \u4e2d \u7684 \u8f66\u8f86 \u3002 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u901a\u8fc7 \u65cb\u8f6c \u77e9\u9635 \uff08 \u5c06 ISO \u5750\u6807 \u5750\u6807\u7cfb \u4e0e \u6240 \u9700 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u5bf9\u9f50 \u6240 \u9700 \u7684 \u65cb\u8f6c \uff09 \u552f\u4e00 \u5b9a\u4e49 \u3002 \u8981 \u4ece \u9ed8\u8ba4 ISO \u7ea6\u5b9a \u66f4\u6539 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u5b9a\u4e49 \uff0c \u5fc5\u987b \u5728 \u4efb\u4f55 Chrono : : Vehicle \u5e93 \u8c03\u7528 \u4e4b\u524d \u8bbe\u7f6e \u6240 \u9700 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \uff1a ` ` ` shell script ChWorldFrame : : Set ( world _ rotation ) ; \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5feb\u6377 \u65b9\u5f0f \u5feb\u6377\u65b9\u5f0f \u6765 \u6307\u5b9a Y \u5411\u4e0a \uff08 X \u5411\u524d \uff0c Z \u5411 \u53f3 \uff09 \u7684 \u4e16\u754c \u6846\u67b6 \uff1a ` ` ` shell script ChWorldFrame : : SetYUP ( ) ; ChWorldFrame \u7c7b \u63d0\u4f9b \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u6765 \u67e5\u8be2 \u4e16\u754c \u6cd5\u7ebf \u3001 \u524d\u5411 \u3001 \u7ed9\u5b9a 3D \u70b9 \u7684 \u9ad8\u5ea6 \uff08 \u6cbf \u4e16\u754c \u5782\u76f4 \u65b9\u5411 \u7684 \u5206\u91cf \uff09 \uff0c \u5c06\u70b9 \u6295\u5f71 \u5230 \u4e16\u754c \u7684 \u6c34\u5e73 \u9762\u4e0a \uff0c \u4ee5\u53ca \u8868\u8fbe \u5f80\u8fd4 \u4e8e \u57fa\u672c ISO \u6846\u67b6 \u7684 3D \u77e2\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 demo _ VEH _ HMMWV9 _ YUPY \u5411\u4e0a \u4e16\u754c \u6846\u67b6 \u4e2d \u7684 Chrono : : Vehicle \u6a21\u62df \u7684 \u793a\u4f8b \u3002 \u6a21\u62df \u5faa\u73af Chrono : : Vehicle \u6a21\u62df \u5faa\u73af \u91c7\u7528 \u529b - \u4f4d\u79fb \u8054\u5408 \u6a21\u62df \u65b9\u6848 \u7684 \u5f62\u5f0f \uff0c \u4e0b\u9762 \u4e24\u5f20 \u56fe \u5206\u522b \u8bf4\u660e \u4e86 \u8f6e\u5f0f \u8f66\u8f86 \u548c \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7684 \u4ea4\u6362 \u6570\u636e \u3002 \u6b64 \u6a21\u62df \u6d41\u7a0b \u901a\u8fc7 Chrono : : Vehicle API \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \uff0c \u8be5 API \u8981\u6c42 \u6240\u6709 \u7cfb\u7edf \u90fd \u63d0\u4f9b \u4e00\u79cd \u5b9e\u73b0 \u6570\u636e \u4ea4\u6362 \u6570\u636e\u4ea4\u6362 \u7684 Synchronize \u65b9\u6cd5 \u548c \u4e00\u79cd \u5b9e\u73b0 \u7cfb\u7edf \u52a8\u6001 \u7684 Advance \u65b9\u6cd5 \uff08 \u5373 \uff0c \u5c06 \u7cfb\u7edf \u72b6\u6001 \u63a8\u8fdb \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u4ea4\u6362 \u6570\u636e\u4ea4\u6362 \u65f6\u95f4 \u70b9 \uff09 \u3002 \u4f46 \u8bf7 \u6ce8\u610f \uff0c \u4f7f\u7528 Chrono : : Vehicle \u4e2d \u63d0\u4f9b \u7684 \u8f85\u52a9 \u7cfb\u7edf \u7684 \u8f66\u8f86 \u79fb\u52a8 \u6a21\u62df \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5c06 \u662f \u4e00\u4e2a \u6574\u4f53 \u7684 \u3001 \u4e00\u6b21 \u4e00\u6b21\u6027 \u8026\u5408 \u7684 \u6a21\u62df \u3002","title":"\u8f66\u8f86 \u5efa\u6a21 \u4e0e \u4eff\u771f \u6982\u8ff0"},{"location":"chrono/vehicle_overview/#_1","text":"Chrono : : Vehicle \u6a21\u5757 \u63d0\u4f9b \u4e86 \u9002\u7528 \u4e8e \u8f6e\u5f0f \u548c \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u5404\u79cd \u62d3\u6251 \u7ed3\u6784 \u7684 \u6a21\u677f \u96c6\u5408 \uff0c \u652f\u6301 \u5bf9 \u521a\u6027 \u3001 \u67d4\u6027 \u548c \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u5730\u5f62 \u8fdb\u884c \u5efa\u6a21 \uff0c \u652f\u6301 \u95ed\u73af \u548c \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u9a71\u52a8 \u6a21\u578b \uff0c \u4ee5\u53ca \u6a21\u62df \u7ed3\u679c \u7684 \u8fd0\u884c \u65f6 \u548c \u79bb\u7ebf \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8f66\u8f86 \u7cfb\u7edf \u7684 \u5efa\u6a21 \u91c7\u7528 \u6a21\u5757 \u6a21\u5757\u5316 \u65b9\u5f0f \uff0c \u8f66\u8f86 \u5b9a\u4e49 \u4e3a \u5404\u79cd \u7cfb\u7edf \u5b50\u7cfb\u7edf \uff08 \u60ac\u67b6 \u3001 \u8f6c\u5411 \u3001 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u7b49 \uff09 \u5b9e\u4f8b \u7684 \u96c6\u5408 \u3002 \u91c7\u7528 \u57fa\u4e8e \u6a21\u677f \u7684 \u8bbe\u8ba1 \u53ef \u5b9e\u73b0 \u5efa\u6a21 \u7684 \u7075\u6d3b \u6d3b\u6027 \u7075\u6d3b\u6027 \u3002 \u5728 Chrono : : Vehicle \u4e2d \uff0c \u6a21\u677f \u662f \u53c2\u6570 \u5316 \u6a21\u578b \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u7279\u5b9a \u5b9e\u73b0 \u3002 \u56e0\u6b64 \uff0c \u6a21\u677f \u5b9a\u4e49 \u57fa\u672c \u5efa\u6a21 \u5143\u7d20 \uff08 \u8f66\u8eab \u3001 \u5173\u8282 \u3001 \u529b \u5143\u7d20 \uff09 \uff0c \u5f3a\u52a0 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u62d3\u6251 \uff0c \u89c4\u5b9a \u8bbe\u8ba1 \u53c2\u6570 \uff0c \u5e76 \u5b9e\u73b0 \u7279\u5b9a \u4e8e \u7279\u5b9a \u6a21\u677f \uff08 \u4f8b\u5982 \u53cc\u53c9\u81c2 \uff09 \u7684 \u7279\u5b9a \u7c7b\u578b \u7cfb\u7edf \u5b50\u7cfb\u7edf \uff08 \u4f8b\u5982 \u60ac\u67b6 \uff09 \u7684 \u901a\u7528 \u529f\u80fd \u3002 \u6700\u540e \uff0c \u901a\u8fc7 \u4e3a \u5177\u4f53 \u8f66\u8f86 \uff08 \u4f8b\u5982 HMMWV \u60ac\u67b6 \u524d\u60ac\u67b6 \uff09 \u6307\u5b9a \u6a21\u677f \u53c2\u6570 \uff08 \u786c\u70b9 \u3001 \u5173\u8282 \u65b9\u5411 \u3001 \u60ef\u6027 \u5c5e\u6027 \u3001 \u63a5\u89e6 \u6750\u6599 \u5c5e\u6027 \u7b49 \uff09 \u6765 \u83b7\u5f97 \u6b64\u7c7b \u6a21\u677f \u7684 \u5b9e\u4f8b \u3002 Chrono : : Vehicle \u4e2d \u7684 \u6838\u5fc3 \u6a21\u677f \u662f \u8f66\u8f86 \u5b50 \u90e8\u4ef6 \u7684 \u53c2\u6570 \u5316 \u6a21\u578b \u3002 \u4f46\u662f \uff0c \u5b8c\u6574 \u7684 \u8f66\u8f86 \u79fb\u52a8 \u6a21\u62df \u8fd8 \u9700\u8981 \u8f66\u8f86 \u672c\u8eab \u4e4b\u5916 \u7684 \u8f85\u52a9 \u7cfb\u7edf \uff0c \u4f8b\u5982 \u63d0\u4f9b \u8f93\u5165 \u63a7\u5236 \uff08 \u4f8b\u5982 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u3001 \u5236\u52a8 \uff09 \u7684 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7cfb\u7edf \u3001 \u5c01\u88c5 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u548c \u53d8\u901f \u53d8\u901f\u7bb1 \u5e76 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u7684 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u4ee5\u53ca \u5730\u5f62 \u7cfb\u7edf \u3002 \u5bf9\u4e8e \u8f6e\u5f0f \u8f66\u8f86 \u7cfb\u7edf \uff0c \u63d0\u4f9b \u4e86 \u4ee5\u4e0b \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u6a21\u677f \uff1a \u60ac\u67b6 \uff08 \u53cc\u53c9\u81c2 \u3001 \u5229\u7528 \u8ddd\u79bb \u7ea6\u675f \u7f29\u77ed \u7684 \u53cc\u53c9\u81c2 \u3001 \u591a \u8fde\u6746 \u3001 \u5b9e\u5fc3 \u8f74 \u3001 \u9ea6\u5f17\u900a\u5f0f \u652f\u67f1 \u3001 \u534a \u62d6\u66f3 \u81c2 \u2026 \u2026 \uff09 \u8f6c\u5411 \uff08 \u8f6c\u5411 \u81c2 \u3001 \u9f7f\u6761 \u9f7f\u8f6e \uff09 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \uff08 2WD \u548c 4WD \u8f74 \u91c7\u7528 \u4e13\u95e8 \u7684 Chrono \u5efa\u6a21 \u5143\u7d20 \uff0c \u7b80\u5316 \u7684 \u8fd0\u52a8 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \uff09 \u8f66\u8f6e \uff08 \u7b80\u5355 \u5730\u8bf4 \uff0c \u662f \u9644\u52a0 \u5728 \u60ac\u67b6 \u4e3b\u8f74 \u4e0a \u7684 \u989d\u5916 \u8d28\u91cf \u548c \u60ef\u6027 \u7684 \u8f7d\u4f53 \uff09 \u5236\u52a8 \u5236\u52a8\u5668 \uff08 \u7b80\u5355 \u6a21\u578b \uff0c \u4f7f\u7528 \u7531 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u5236\u52a8 \u8f93\u5165 \u8c03\u8282 \u7684 \u6052\u5b9a \u626d\u77e9 \uff09 Chrono : : Vehicle \u63d0\u4f9b \u5404\u79cd \u8f6e\u80ce \u6a21\u578b \u548c \u76f8\u5173 \u6a21\u677f \uff0c \u4ece \u521a\u6027 \u8f6e\u80ce \u5230 \u534a \u7ecf\u9a8c \u6a21\u578b \uff08 \u5982 Pacejka \u548c Fiala \uff09 \uff0c \u518d \u5230 \u7528 \u6709\u9650 \u6709\u9650\u5143 \u5efa\u6a21 \u7684 \u5b8c\u5168 \u53ef \u53d8\u5f62 \u8f6e\u80ce \uff08 \u4f7f\u7528 \u7edd\u5bf9 \u8282\u70b9 \u5750\u6807 \u516c\u5f0f \u6216 \u5171 \u65cb\u8f6c \u516c\u5f0f \uff09 \u3002 \u5c65\u5e26 \u677f \uff08 \u5355\u9500\u5f0f \u548c \u53cc\u9500\u5f0f \uff09 \uff1a \u5355\u9500\u5f0f \u5c31\u662f \u4e24\u4e2a \u5c65\u5e26 \u5757 \u76f8\u4e92 \u7ed3\u5408 \u4e4b\u540e \u4ee5 \u4e00\u6839 \u957f \u94a2\u9489 \u8fde\u7ed3 \uff0c \u4e24\u7aef \u56fa\u5b9a \u597d \uff1b \u53cc\u9500\u5f0f \u5c31\u662f \u4e24\u4e2a \u5c65\u5e26 \u5757 \u76f4\u63a5 \u5728 \u4e24\u7aef \u56fa\u5b9a \u63a5\u5408 \u3002 \u76f8\u5173 \u94fe\u8f6e \u6a21\u677f \uff08 \u5e26\u6709 \u76f8\u5e94 \u7684 \u9f7f\u8f6e \u8f6e\u5ed3 \uff09 \u60ac\u67b6 \uff08 \u5e26 \u7ebf\u6027 \u6216 \u65cb\u8f6c \u963b\u5c3c \u963b\u5c3c\u5668 \u7684 \u626d\u8f6c \u5f39\u7c27 \uff0c \u6db2\u538b \uff09 \u60f0\u8f6e \uff08 \u5e26 \u5f20\u7d27 \u673a\u6784 \uff09 \u6eda\u7b52 \u4f5c\u4e3a \u4e2d\u95f4 \u4e2d\u95f4\u4ef6 \u5e93 \uff0c Chrono : : Vehicle \u8981\u6c42 \u7528\u6237 \u63d0\u4f9b C++ \u7c7b\u6765 \u5177\u4f53 \u5b9e\u4f8b \u5316 \u7279\u5b9a \u6a21\u677f \u3002 \u53ef\u9009 \u7684 Chrono \u5e93\u4e3a \u4e00\u4e9b \u5730\u9762 \u8f66\u8f86 \uff08 \u5305\u62ec \u8f6e\u5f0f \u548c \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \uff09 \u63d0\u4f9b \u4e86 \u5b8c\u6574 \u7684 \u6b64\u7c7b \u5177\u4f53 C++ \u7c7b\u96c6 \uff0c \u53ef \u4f5c\u4e3a \u5176\u4ed6 \u7279\u5b9a \u8f66\u8f86 \u6a21\u578b \u7684 \u793a\u4f8b \u3002 \u867d\u7136 \u6b64\u7c7b \u7c7b \u901a\u5e38 \u975e\u5e38 \u8f7b\u91cf \uff0c \u4f46 \u8fd9 \u9700\u8981 \u4e00\u5b9a \u7684 \u7f16\u7a0b \u7ecf\u9a8c \u3002 \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u79cd \u66ff\u4ee3 \u673a\u5236 \u6765 \u5b9a\u4e49 \u8f66\u8f86 \u7cfb\u7edf \u548c \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u677f \u7684 \u5177\u4f53 \u5b9e\u4f8b \uff0c \u8be5 \u673a\u5236 \u57fa\u4e8e JSON \u683c\u5f0f \u7684 \u8f93\u5165 \u89c4\u8303 \u6587\u4ef6 \u3002 \u6839\u636e \u7ed9\u5b9a \u7c7b\u578b \uff08 \u8f6e\u5f0f \u6216 \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \uff09 \u7684 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u677f \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u5177\u4f53 \u6a21\u677f \u53c2\u6570 \u7684 \u76f8\u5e94 JSON \u6587\u4ef6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u6765 \u5b8c\u6574 \u5b9a\u4e49 \u8f66\u8f86 \uff0c \u5426\u5219 \u5c06 \u63a8\u8fdf \u5230\u5b50 \u7ec4\u4ef6 \u7684 \u4e00\u6b65 \u8fdb\u4e00\u6b65 JSON \u89c4\u8303 \u6587\u4ef6 \u3002 \u4ee5\u4e0b \u662f \u8f6e\u5f0f \u8f66\u8f86 \u7684 \u9876\u7ea7 JSON \u89c4\u8303 \u6587\u4ef6 \u7684 \u793a\u4f8b \u3002 \u8fde\u540c \u5b83 \u5f15\u7528 \u7684 \u6240\u6709 \u5176\u4ed6 \u8f93\u5165 \u6587\u4ef6 \uff0c \u6b64 JSON \u6587\u4ef6 \u5b8c\u6574 \u63cf\u8ff0 \u4e86 \u5177\u6709 \u4e24\u4e2a \u8f74 \u7684 \u5177\u4f53 \u8f6e\u5f0f \u8f66\u8f86 \uff0c \u524d\u540e \u5747 \u4f7f\u7528 \u53cc\u53c9\u81c2 \u60ac\u67b6 \uff0c \u524d\u8f74 \u4e0a \u5b89\u88c5 \u6709 \u8f6c\u5411 \u81c2 \u8f6c\u5411 \u673a\u6784 \uff0c \u540e\u8f6e \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u3002 { \" Name \" : \" Test vehicle - Double Wishbone \" , \" Type \" : \" Vehicle \" , \" Template \" : \" WheeledVehicle \" , \" Chassis \" : { \" Input File \" : \" generic / chassis / Chassis . json \" } , \" Axles \" : [ { \" Suspension Input File \" : \" generic / suspension / DoubleWishbone . json \" , \" Suspension Location \" : [ 1.25 , 0 , - 0.21 ] , \" Steering Index \" : 0 , \" Left Wheel Input File \" : \" generic / wheel / WheelSimple . json \" , \" Right Wheel Input File \" : \" generic / wheel / WheelSimple . json \" , \" Left Brake Input File \" : \" generic / brake / BrakeSimple . json \" , \" Right Brake Input File \" : \" generic / brake / BrakeSimple . json \" } , { \" Suspension Input File \" : \" generic / suspension / DoubleWishbone . json \" , \" Suspension Location \" : [ - 1.25 , 0 , - 0.21 ] , \" Left Wheel Input File \" : \" generic / wheel / WheelSimple . json \" , \" Right Wheel Input File \" : \" generic / wheel / WheelSimple . json \" , \" Left Brake Input File \" : \" generic / brake / BrakeSimple . json \" , \" Right Brake Input File \" : \" generic / brake / BrakeSimple . json \" } ] , \" Steering Subsystems \" : [ { \" Input File \" : \" generic / steering / PitmanArm . json \" , \" Location \" : [ 1.1 , 0 , - 0.4 ] , \" Orientation \" : [ 0.98699637 , 0 , 0.16074256 , 0 ] } ] , \" Driveline \" : { \" Input File \" : \" generic / driveline / Driveline2WD . json \" , \" Suspension Indexes \" : [ 1 ] } }","title":"\u8f66\u8f86 \u5efa\u6a21 \u4e0e \u4eff\u771f \u6982\u8ff0"},{"location":"chrono/vehicle_overview/#_2","text":"\u6bcf\u4e2a \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u90fd \u662f \u6839\u636e \u5176 \u81ea\u5df1 \u7684 \u53c2\u8003 \u53c2\u8003\u7cfb \u5b9a\u4e49 \u7684 \uff1b \u6362\u53e5 \u6362\u53e5\u8bdd \u6362\u53e5\u8bdd\u8bf4 \uff0c \u8f66\u8f86 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u677f \u4e2d \u7684 \u6240\u6709 \u53d7\u529b \u70b9 \u4f4d\u7f6e \u90fd \u5fc5\u987b \u6839\u636e \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u53c2\u8003 \u53c2\u8003\u7cfb \u63d0\u4f9b \u3002 \u7136\u540e \uff0c \u8f66\u8f86 \u7cfb\u7edf \uff08 \u65e0\u8bba \u65e0\u8bba\u662f \u8f6e\u5f0f \u8fd8\u662f \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \uff09 \u88ab \u6784\u5efa \u4e3a \u5176 \u7ec4\u6210 \u90e8\u4ef6 \u7684 \u5177\u4f53 \u6a21\u677f \u5b9e\u4f8b \u96c6\u5408 \uff0c \u65b9\u6cd5 \u662f \u6307\u5b9a \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u63d0\u4f9b \u8fde\u63a5 \u4fe1\u606f \uff08 \u4f8b\u5982 \uff0c \u5c06 \u7279\u5b9a \u7684 \u8f6c\u5411 \u673a\u6784 \u8fde\u63a5 \u5230 \u8f6e\u5f0f \u8f66\u8f86 \u7684 \u7279\u5b9a \u8f66\u8f74 / \u60ac\u67b6 \uff09 \u3002 \u5bf9\u4e8e \u5efa\u6a21 \uff0c Chrono : : Vehicle \u4ec5 \u4f7f\u7528 ISO \u8f66\u8f86 \u8f74 \u7ea6\u5b9a \uff0c \u5373 \u53f3\u4fa7 \u6846\u67b6 \uff0c X \u5411\u524d \uff0c Z \u5411\u4e0a \uff0c Y \u6307\u5411 \u8f66\u8f86 \u5de6\u4fa7 \uff08 \u53c2\u89c1 ISO 8855 : 2011 \uff09 \u3002 \u4e0b\u56fe \u8bf4\u660e \u4e86 \u8f66\u8f86 \u53c2\u8003 \u53c2\u8003\u7cfb $ O _ 1 $ \uff08 \u6309\u7167 \u60ef\u4f8b \u4e0e \u5e95\u76d8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u53c2\u8003 \u53c2\u8003\u7cfb \u5bf9\u9f50 \uff09 \uff0c \u4ee5\u53ca \u7cfb\u7edf \u5b50\u7cfb\u7edf \u53c2\u8003 \u53c2\u8003\u7cfb \uff08 $ O _ 2 ^ ' $ \u548c $ O _ 2 ^ { ' ' } $ \u8868\u793a \u524d\u540e \u60ac\u67b6 \uff0c $ O _ 3 $ \u8868\u793a \u8f6c\u5411 \u673a\u6784 \uff09 \uff0c \u9002\u7528 \u4e8e \u53cc\u8f74 \u8f6e\u5f0f \u8f66\u8f86 \u3002","title":"\u53c2\u8003 \u6846\u67b6 "},{"location":"chrono/vehicle_overview/#_3","text":"\u867d\u7136 Chrono : : Vehicle \u6a21\u62df \u7684 \u9ed8\u8ba4 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u4e5f \u662f ISO \uff08 Z \u5411\u4e0a \uff09 \u5750\u6807 \u5750\u6807\u7cfb \uff0c \u4f46 \u652f\u6301 \u6a21\u62df \u5728 \u4e0d\u540c \u53c2\u8003 \u5750\u6807 \u5750\u6807\u7cfb \uff08 \u4f8b\u5982 Y \u5411\u4e0a \u5750\u6807 \u5750\u6807\u7cfb \uff09 \u4e2d \u6307\u5b9a \u7684 \u573a\u666f \u4e2d \u7684 \u8f66\u8f86 \u3002 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u901a\u8fc7 \u65cb\u8f6c \u77e9\u9635 \uff08 \u5c06 ISO \u5750\u6807 \u5750\u6807\u7cfb \u4e0e \u6240 \u9700 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u5bf9\u9f50 \u6240 \u9700 \u7684 \u65cb\u8f6c \uff09 \u552f\u4e00 \u5b9a\u4e49 \u3002 \u8981 \u4ece \u9ed8\u8ba4 ISO \u7ea6\u5b9a \u66f4\u6539 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u5b9a\u4e49 \uff0c \u5fc5\u987b \u5728 \u4efb\u4f55 Chrono : : Vehicle \u5e93 \u8c03\u7528 \u4e4b\u524d \u8bbe\u7f6e \u6240 \u9700 \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \uff1a ` ` ` shell script ChWorldFrame : : Set ( world _ rotation ) ; \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5feb\u6377 \u65b9\u5f0f \u5feb\u6377\u65b9\u5f0f \u6765 \u6307\u5b9a Y \u5411\u4e0a \uff08 X \u5411\u524d \uff0c Z \u5411 \u53f3 \uff09 \u7684 \u4e16\u754c \u6846\u67b6 \uff1a ` ` ` shell script ChWorldFrame : : SetYUP ( ) ; ChWorldFrame \u7c7b \u63d0\u4f9b \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u6765 \u67e5\u8be2 \u4e16\u754c \u6cd5\u7ebf \u3001 \u524d\u5411 \u3001 \u7ed9\u5b9a 3D \u70b9 \u7684 \u9ad8\u5ea6 \uff08 \u6cbf \u4e16\u754c \u5782\u76f4 \u65b9\u5411 \u7684 \u5206\u91cf \uff09 \uff0c \u5c06\u70b9 \u6295\u5f71 \u5230 \u4e16\u754c \u7684 \u6c34\u5e73 \u9762\u4e0a \uff0c \u4ee5\u53ca \u8868\u8fbe \u5f80\u8fd4 \u4e8e \u57fa\u672c ISO \u6846\u67b6 \u7684 3D \u77e2\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 demo _ VEH _ HMMWV9 _ YUPY \u5411\u4e0a \u4e16\u754c \u6846\u67b6 \u4e2d \u7684 Chrono : : Vehicle \u6a21\u62df \u7684 \u793a\u4f8b \u3002","title":"\u6a21\u62df \u4e16\u754c \u6846\u67b6"},{"location":"chrono/vehicle_overview/#_4","text":"Chrono : : Vehicle \u6a21\u62df \u5faa\u73af \u91c7\u7528 \u529b - \u4f4d\u79fb \u8054\u5408 \u6a21\u62df \u65b9\u6848 \u7684 \u5f62\u5f0f \uff0c \u4e0b\u9762 \u4e24\u5f20 \u56fe \u5206\u522b \u8bf4\u660e \u4e86 \u8f6e\u5f0f \u8f66\u8f86 \u548c \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7684 \u4ea4\u6362 \u6570\u636e \u3002 \u6b64 \u6a21\u62df \u6d41\u7a0b \u901a\u8fc7 Chrono : : Vehicle API \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \uff0c \u8be5 API \u8981\u6c42 \u6240\u6709 \u7cfb\u7edf \u90fd \u63d0\u4f9b \u4e00\u79cd \u5b9e\u73b0 \u6570\u636e \u4ea4\u6362 \u6570\u636e\u4ea4\u6362 \u7684 Synchronize \u65b9\u6cd5 \u548c \u4e00\u79cd \u5b9e\u73b0 \u7cfb\u7edf \u52a8\u6001 \u7684 Advance \u65b9\u6cd5 \uff08 \u5373 \uff0c \u5c06 \u7cfb\u7edf \u72b6\u6001 \u63a8\u8fdb \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u4ea4\u6362 \u6570\u636e\u4ea4\u6362 \u65f6\u95f4 \u70b9 \uff09 \u3002 \u4f46 \u8bf7 \u6ce8\u610f \uff0c \u4f7f\u7528 Chrono : : Vehicle \u4e2d \u63d0\u4f9b \u7684 \u8f85\u52a9 \u7cfb\u7edf \u7684 \u8f66\u8f86 \u79fb\u52a8 \u6a21\u62df \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5c06 \u662f \u4e00\u4e2a \u6574\u4f53 \u7684 \u3001 \u4e00\u6b21 \u4e00\u6b21\u6027 \u8026\u5408 \u7684 \u6a21\u62df \u3002","title":"\u6a21\u62df \u5faa\u73af "},{"location":"chrono/vehicle_powertrain/","text":"\u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u603b\u6210 \u6a21\u578b \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u56fe \u6a21\u578b \u7b80\u5355 \u7684 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u8fde\u63a5 \u5230 \u9a71\u52a8 \u7cfb\u7edf \uff08 \u63a5\u6536 \u6cb9\u95e8 \u8f93\u5165 \uff09 \u548c \u8f66\u8f86 \u7cfb\u7edf \u7684 \u4f20\u52a8 \u7cfb \u7cfb\u7edf \u5b50\u7cfb\u7edf \uff08 \u63a5\u6536 \u9a71\u52a8 \u8f74 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5e76 \u53d1\u9001 \u9a71\u52a8 \u8f74 \u626d\u77e9 \uff09 \u3002 Chrono : : Vehicle \u65e8\u5728 \u5141\u8bb8 \u94fe\u63a5 \u5230 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u3002 \u4e0e \u6b64\u7c7b \u5916\u90e8 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u63a5\u53e3 \u9700\u8981 \u4e24\u4e2a \u7cbe\u7b80 \u63a5\u53e3 \u63a5\u53e3\u7c7b \uff0c \u5b83\u4eec \u6d3e\u751f \u81ea ChEngine \u548c ChTransmission \u3002 Chrono : : Vehicle \u4e3a \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u6a21\u677f \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u603b\u6210 \u6a21\u578b \u8be5 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u57fa\u4e8e \u5404\u79cd Chrono 1 - D \u8f74 \u5143\u4ef6 ( ChShaft ) \u548c \u4e13\u7528 \u8f74 \u8fde\u63a5 \u5143\u4ef6 \u3002 \u8fd9\u4e9b \u5143\u4ef6 \u7528\u4e8e \u5efa\u6a21 \uff1a \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a ( ChShaftsThermalEngine ) \uff0c \u901a\u8fc7 \u901f\u5ea6 \u626d\u77e9 \u66f2\u7ebf \u6307\u5b9a \u626d\u77e9 \u8f6c\u6362 \u8f6c\u6362\u5668 ( ChShaftsTorqueConverter ) \uff0c \u901a\u8fc7 \u66f2\u7ebf \u6307\u5b9a \u5bb9\u91cf \u7cfb\u6570 \u4f5c\u4e3a \u901f\u5ea6 \u6bd4 \u7684 \u51fd\u6570 \uff0c \u4ee5\u53ca \u626d\u77e9 \u6bd4 \u4f5c\u4e3a \u901f\u5ea6 \u6bd4 \u7684 \u51fd\u6570 \u53d8\u901f \u53d8\u901f\u7bb1 \uff08 \u624b\u52a8 \u6216 \u81ea\u52a8 \uff0c \u5177\u6709 \u4efb\u610f \u6570\u91cf \u7684 \u524d\u8fdb \u6863 \u548c \u5012 \u6863 \uff09 \u7535\u673a \u6a21\u5757 \u901a\u8fc7 \u7279\u6b8a \u7684 Chrono \u7ea6\u675f \uff08 ChShaftBodyRotation \uff09 \u8fde\u63a5 \u5230 \u5e95\u76d8 \uff0c \u4ece\u800c \u5141\u8bb8 \u6a21\u62df \u7535\u673a \u626d\u77e9 \u5bf9 \u5e95\u76d8 \u7684 \u5f71\u54cd \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 ChEngineShafts \u3001 ChAutomaticTransmissionShafts \u548c ChManualTransmissionShafts \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 \u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u4e0e \u57fa\u4e8e \u8f74 \u7684 \u8f6e\u5f0f \u8f66\u8f86 \u6a21\u578b \u7684 \u8fde\u63a5 \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff0c \u8bf4\u660e \u4e86 \u5404\u79cd \u6a21\u677f \u53c2\u6570 \uff1a { \" Name \" : \" HMMWV Shafts Engine \" , \" Type \" : \" Engine \" , \" Template \" : \" EngineShafts \" , \" Motor Block Inertia \" : 10.5 , / / connection to chassis \" Motorshaft Inertia \" : 1.1 , / / connection to transmission \" Torque Map \" : [ [ - 100 , 300 ] , [ 800 , 382 ] , [ 900 , 490 ] , [ 1000 , 579 ] , [ 1100 , 650 ] , [ 1200 , 706 ] , [ 1300 , 746 ] , [ 1400 , 774 ] , [ 1500 , 789 ] , [ 1600 , 793 ] , [ 1700 , 788 ] , [ 1800 , 774 ] , [ 1900 , 754 ] , [ 2000 , 728 ] , [ 2100 , 697 ] , [ 2200 , 664 ] , [ 2300 , 628 ] , [ 2400 , 593 ] , [ 2500 , 558 ] , [ 2700 , - 400 ] ] , \" Losses Map \" : [ [ - 50 , 30 ] , [ 0 , 0 ] , [ 50 , - 30 ] , [ 1000 , - 50 ] , [ 2000 , - 70 ] , [ 3000 , - 90 ] ] } { \" Name \" : \" HMMWV Shafts Automatic Transmission \" , \" Type \" : \" Transmission \" , \" Template \" : \" AutomaticTransmissionShafts \" , \" Transmission Block Inertia \" : 10.5 , / / connection to chassis \" Input Shaft Inertia \" : 0.3 , \" Motorshaft Inertia \" : 0.5 , / / connection to engine \" Driveshaft Inertia \" : 0.5 , / / connection to driveline \" Torque Converter \" : { \" Capacity Factor Map \" : [ [ 0.00 , 15.00 ] , [ 0.25 , 15.00 ] , [ 0.50 , 15.00 ] , [ 0.75 , 16.00 ] , [ 0.90 , 18.00 ] , [ 1.00 , 35.00 ] ] , \" Torque Ratio Map \" : [ [ 0.00 , 2.00 ] , [ 0.25 , 1.80 ] , [ 0.50 , 1.50 ] , [ 0.75 , 1.15 ] , [ 1.00 , 1.00 ] ] } , \" Gear Box \" : { \" Forward Gear Ratios \" : [ 0.2 , 0.4 , 0.8 ] , \" Reverse Gear Ratio \" : - 0.1 , \" Upshift RPM \" : 2500 , \" Downshift RPM \" : 1200 , \" Shift Latency \" : 1.0 } } \u4e0a\u8ff0 JSON \u6587\u4ef6 \u4e2d \u7f16\u7801 \u7684 \u66f2\u7ebf \u5982\u4e0b \u6240\u793a \u3002 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u56fe \u6a21\u578b \u8fd9\u662f \u4e00\u4e2a \u7b80\u5355 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u7684 \u6a21\u677f \uff0c \u57fa\u4e8e \u901f\u5ea6 \u626d\u77e9 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u56fe \u3002 \u8be5 \u6a21\u578b \u6ca1\u6709 \u626d\u77e9 \u8f6c\u6362 \u8f6c\u6362\u5668 \uff0c \u53ef\u4ee5 \u6709 \u624b\u52a8 \u6216 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u5668 \u3002 \u5b83 \u63a5\u53d7 \u4e00\u4e2a \u5012 \u6863 \u548c \u4efb\u610f \u6570\u91cf \u7684 \u524d\u8fdb \u6863 \u3002 \u5728 \u81ea\u52a8 \u6a21\u5f0f \u4e0b \uff0c \u6362\u6863 \u662f \u6839\u636e \u6307\u5b9a \u7684 \u7406\u60f3 \u6362\u6863 \u70b9 \u8fdb\u884c \u7684 \u3002 \u53c2\u89c1 ChEngineSimpleMap \u548c ChAutomaticTransmissionSimpleMap \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u5e26\u6709 \u5730\u56fe \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff0c \u8bf4\u660e \u4e86 \u5404\u79cd \u6a21\u677f \u53c2\u6570 \u3002 { \" Name \" : \" UAZBUS Simple Map Engine \" , \" Type \" : \" Engine \" , \" Template \" : \" EngineSimpleMap \" , \" Maximal Engine Speed RPM \" : 4000 , \" Map Full Throttle \" : [ [ - 10.0 , 104.66 ] , [ 7.365 e + 02 , 1.744 e + 02 ] , [ 9.876 e + 02 , 1.827 e + 02 ] , [ 1.238 e + 03 , 1.898 e + 02 ] , [ 1.500 e + 03 , 1.957 e + 02 ] , [ 1.724 e + 03 , 2.005 e + 02 ] , [ 1.980 e + 03 , 2.052 e + 02 ] , [ 2.188 e + 03 , 2.076 e + 02 ] , [ 2.348 e + 03 , 2.081 e + 02 ] , [ 2.492 e + 03 , 2.062 e + 02 ] , [ 2.737 e + 03 , 2.062 e + 02 ] , [ 2.992 e + 03 , 2.062 e + 02 ] , [ 3.189 e + 03 , 2.064 e + 02 ] , [ 3.487 e + 03 , 2.031 e + 02 ] , [ 3.684 e + 03 , 1.995 e + 02 ] , [ 3.908 e + 03 , 1.945 e + 02 ] , [ 4100.0 , - 100.0 ] , [ 4200.0 , - 200.0 ] ] , \" Map Zero Throttle \" : [ [ - 10.0 , 0.0 ] , [ 7.365 e + 02 , - 10.0 ] , [ 9.880 e + 02 , - 10.0 ] , [ 1.500 e + 03 , - 15.0 ] , [ 1.980 e + 03 , - 15.0 ] , [ 2.348 e + 03 , - 15.0 ] , [ 2.737 e + 03 , - 20.0 ] , [ 3.189 e + 03 , - 20.0 ] , [ 3.685 e + 03 , - 30.0 ] , [ 3.908 e + 03 , - 100.0 ] ] } { \" Name \" : \" UAZBUS Simple Map Transmission \" , \" Type \" : \" Transmission \" , \" Template \" : \" AutomaticTransmissionSimpleMap \" , \" Gear Box \" : { \" Reverse Gear Ratio \" : - 0.191 , \" Forward Gear Ratios \" : [ 0.125 , 0.242 , 0.379 , 0.633 , 1.0 ] , \" Shift Points Map RPM \" : [ [ 1000 , 3000 ] , [ 1200 , 3700 ] , [ 1200 , 3700 ] , [ 1200 , 3700 ] , [ 1200 , 4000 ] ] } } \u4e0a\u8ff0 JSON \u6587\u4ef6 \u4e2d \u7f16\u7801 \u7684 \u66f2\u7ebf \u5982\u4e0b \u6240\u793a \u3002 \u7b80\u5355 \u7684 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u8be5 \u6a21\u578b \u91c7\u7528 \u7b80\u5355 \u7684 \u901f\u5ea6 - \u626d\u77e9 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \uff0c \u6ca1\u6709 \u626d\u77e9 \u8f6c\u6362 \u8f6c\u6362\u5668 \u548c \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 \u53c2\u89c1 ChEngineSimple \u548c EngineSimple \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5177\u6709 CVT \u7c7b \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff0c \u8bf4\u660e \u4e86 \u5404\u79cd \u6a21\u677f \u53c2\u6570 \u3002 { \" Name \" : \" HMMWV Simple Engine \" , \" Type \" : \" Engine \" , \" Template \" : \" EngineSimple \" , \" Maximum Engine Torque \" : 330 , \" Maximum Engine Power \" : 110000 , \" Maximum Engine Speed \" : 10000 }","title":"\u52a8\u529b\u7cfb\u7edf \u6a21\u578b"},{"location":"chrono/vehicle_powertrain/#_1","text":"\u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u603b\u6210 \u6a21\u578b \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u56fe \u6a21\u578b \u7b80\u5355 \u7684 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u8fde\u63a5 \u5230 \u9a71\u52a8 \u7cfb\u7edf \uff08 \u63a5\u6536 \u6cb9\u95e8 \u8f93\u5165 \uff09 \u548c \u8f66\u8f86 \u7cfb\u7edf \u7684 \u4f20\u52a8 \u7cfb \u7cfb\u7edf \u5b50\u7cfb\u7edf \uff08 \u63a5\u6536 \u9a71\u52a8 \u8f74 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5e76 \u53d1\u9001 \u9a71\u52a8 \u8f74 \u626d\u77e9 \uff09 \u3002 Chrono : : Vehicle \u65e8\u5728 \u5141\u8bb8 \u94fe\u63a5 \u5230 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u3002 \u4e0e \u6b64\u7c7b \u5916\u90e8 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u63a5\u53e3 \u9700\u8981 \u4e24\u4e2a \u7cbe\u7b80 \u63a5\u53e3 \u63a5\u53e3\u7c7b \uff0c \u5b83\u4eec \u6d3e\u751f \u81ea ChEngine \u548c ChTransmission \u3002 Chrono : : Vehicle \u4e3a \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u6a21\u677f \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002","title":"\u52a8\u529b\u7cfb\u7edf \u6a21\u578b"},{"location":"chrono/vehicle_powertrain/#_2","text":"\u8be5 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u57fa\u4e8e \u5404\u79cd Chrono 1 - D \u8f74 \u5143\u4ef6 ( ChShaft ) \u548c \u4e13\u7528 \u8f74 \u8fde\u63a5 \u5143\u4ef6 \u3002 \u8fd9\u4e9b \u5143\u4ef6 \u7528\u4e8e \u5efa\u6a21 \uff1a \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a ( ChShaftsThermalEngine ) \uff0c \u901a\u8fc7 \u901f\u5ea6 \u626d\u77e9 \u66f2\u7ebf \u6307\u5b9a \u626d\u77e9 \u8f6c\u6362 \u8f6c\u6362\u5668 ( ChShaftsTorqueConverter ) \uff0c \u901a\u8fc7 \u66f2\u7ebf \u6307\u5b9a \u5bb9\u91cf \u7cfb\u6570 \u4f5c\u4e3a \u901f\u5ea6 \u6bd4 \u7684 \u51fd\u6570 \uff0c \u4ee5\u53ca \u626d\u77e9 \u6bd4 \u4f5c\u4e3a \u901f\u5ea6 \u6bd4 \u7684 \u51fd\u6570 \u53d8\u901f \u53d8\u901f\u7bb1 \uff08 \u624b\u52a8 \u6216 \u81ea\u52a8 \uff0c \u5177\u6709 \u4efb\u610f \u6570\u91cf \u7684 \u524d\u8fdb \u6863 \u548c \u5012 \u6863 \uff09 \u7535\u673a \u6a21\u5757 \u901a\u8fc7 \u7279\u6b8a \u7684 Chrono \u7ea6\u675f \uff08 ChShaftBodyRotation \uff09 \u8fde\u63a5 \u5230 \u5e95\u76d8 \uff0c \u4ece\u800c \u5141\u8bb8 \u6a21\u62df \u7535\u673a \u626d\u77e9 \u5bf9 \u5e95\u76d8 \u7684 \u5f71\u54cd \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 ChEngineShafts \u3001 ChAutomaticTransmissionShafts \u548c ChManualTransmissionShafts \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 \u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u4e0e \u57fa\u4e8e \u8f74 \u7684 \u8f6e\u5f0f \u8f66\u8f86 \u6a21\u578b \u7684 \u8fde\u63a5 \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff0c \u8bf4\u660e \u4e86 \u5404\u79cd \u6a21\u677f \u53c2\u6570 \uff1a { \" Name \" : \" HMMWV Shafts Engine \" , \" Type \" : \" Engine \" , \" Template \" : \" EngineShafts \" , \" Motor Block Inertia \" : 10.5 , / / connection to chassis \" Motorshaft Inertia \" : 1.1 , / / connection to transmission \" Torque Map \" : [ [ - 100 , 300 ] , [ 800 , 382 ] , [ 900 , 490 ] , [ 1000 , 579 ] , [ 1100 , 650 ] , [ 1200 , 706 ] , [ 1300 , 746 ] , [ 1400 , 774 ] , [ 1500 , 789 ] , [ 1600 , 793 ] , [ 1700 , 788 ] , [ 1800 , 774 ] , [ 1900 , 754 ] , [ 2000 , 728 ] , [ 2100 , 697 ] , [ 2200 , 664 ] , [ 2300 , 628 ] , [ 2400 , 593 ] , [ 2500 , 558 ] , [ 2700 , - 400 ] ] , \" Losses Map \" : [ [ - 50 , 30 ] , [ 0 , 0 ] , [ 50 , - 30 ] , [ 1000 , - 50 ] , [ 2000 , - 70 ] , [ 3000 , - 90 ] ] } { \" Name \" : \" HMMWV Shafts Automatic Transmission \" , \" Type \" : \" Transmission \" , \" Template \" : \" AutomaticTransmissionShafts \" , \" Transmission Block Inertia \" : 10.5 , / / connection to chassis \" Input Shaft Inertia \" : 0.3 , \" Motorshaft Inertia \" : 0.5 , / / connection to engine \" Driveshaft Inertia \" : 0.5 , / / connection to driveline \" Torque Converter \" : { \" Capacity Factor Map \" : [ [ 0.00 , 15.00 ] , [ 0.25 , 15.00 ] , [ 0.50 , 15.00 ] , [ 0.75 , 16.00 ] , [ 0.90 , 18.00 ] , [ 1.00 , 35.00 ] ] , \" Torque Ratio Map \" : [ [ 0.00 , 2.00 ] , [ 0.25 , 1.80 ] , [ 0.50 , 1.50 ] , [ 0.75 , 1.15 ] , [ 1.00 , 1.00 ] ] } , \" Gear Box \" : { \" Forward Gear Ratios \" : [ 0.2 , 0.4 , 0.8 ] , \" Reverse Gear Ratio \" : - 0.1 , \" Upshift RPM \" : 2500 , \" Downshift RPM \" : 1200 , \" Shift Latency \" : 1.0 } } \u4e0a\u8ff0 JSON \u6587\u4ef6 \u4e2d \u7f16\u7801 \u7684 \u66f2\u7ebf \u5982\u4e0b \u6240\u793a \u3002","title":"\u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u603b\u6210 \u6a21\u578b"},{"location":"chrono/vehicle_powertrain/#_3","text":"\u8fd9\u662f \u4e00\u4e2a \u7b80\u5355 \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u6a21\u578b \u7684 \u6a21\u677f \uff0c \u57fa\u4e8e \u901f\u5ea6 \u626d\u77e9 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u56fe \u3002 \u8be5 \u6a21\u578b \u6ca1\u6709 \u626d\u77e9 \u8f6c\u6362 \u8f6c\u6362\u5668 \uff0c \u53ef\u4ee5 \u6709 \u624b\u52a8 \u6216 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u5668 \u3002 \u5b83 \u63a5\u53d7 \u4e00\u4e2a \u5012 \u6863 \u548c \u4efb\u610f \u6570\u91cf \u7684 \u524d\u8fdb \u6863 \u3002 \u5728 \u81ea\u52a8 \u6a21\u5f0f \u4e0b \uff0c \u6362\u6863 \u662f \u6839\u636e \u6307\u5b9a \u7684 \u7406\u60f3 \u6362\u6863 \u70b9 \u8fdb\u884c \u7684 \u3002 \u53c2\u89c1 ChEngineSimpleMap \u548c ChAutomaticTransmissionSimpleMap \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u5e26\u6709 \u5730\u56fe \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff0c \u8bf4\u660e \u4e86 \u5404\u79cd \u6a21\u677f \u53c2\u6570 \u3002 { \" Name \" : \" UAZBUS Simple Map Engine \" , \" Type \" : \" Engine \" , \" Template \" : \" EngineSimpleMap \" , \" Maximal Engine Speed RPM \" : 4000 , \" Map Full Throttle \" : [ [ - 10.0 , 104.66 ] , [ 7.365 e + 02 , 1.744 e + 02 ] , [ 9.876 e + 02 , 1.827 e + 02 ] , [ 1.238 e + 03 , 1.898 e + 02 ] , [ 1.500 e + 03 , 1.957 e + 02 ] , [ 1.724 e + 03 , 2.005 e + 02 ] , [ 1.980 e + 03 , 2.052 e + 02 ] , [ 2.188 e + 03 , 2.076 e + 02 ] , [ 2.348 e + 03 , 2.081 e + 02 ] , [ 2.492 e + 03 , 2.062 e + 02 ] , [ 2.737 e + 03 , 2.062 e + 02 ] , [ 2.992 e + 03 , 2.062 e + 02 ] , [ 3.189 e + 03 , 2.064 e + 02 ] , [ 3.487 e + 03 , 2.031 e + 02 ] , [ 3.684 e + 03 , 1.995 e + 02 ] , [ 3.908 e + 03 , 1.945 e + 02 ] , [ 4100.0 , - 100.0 ] , [ 4200.0 , - 200.0 ] ] , \" Map Zero Throttle \" : [ [ - 10.0 , 0.0 ] , [ 7.365 e + 02 , - 10.0 ] , [ 9.880 e + 02 , - 10.0 ] , [ 1.500 e + 03 , - 15.0 ] , [ 1.980 e + 03 , - 15.0 ] , [ 2.348 e + 03 , - 15.0 ] , [ 2.737 e + 03 , - 20.0 ] , [ 3.189 e + 03 , - 20.0 ] , [ 3.685 e + 03 , - 30.0 ] , [ 3.908 e + 03 , - 100.0 ] ] } { \" Name \" : \" UAZBUS Simple Map Transmission \" , \" Type \" : \" Transmission \" , \" Template \" : \" AutomaticTransmissionSimpleMap \" , \" Gear Box \" : { \" Reverse Gear Ratio \" : - 0.191 , \" Forward Gear Ratios \" : [ 0.125 , 0.242 , 0.379 , 0.633 , 1.0 ] , \" Shift Points Map RPM \" : [ [ 1000 , 3000 ] , [ 1200 , 3700 ] , [ 1200 , 3700 ] , [ 1200 , 3700 ] , [ 1200 , 4000 ] ] } } \u4e0a\u8ff0 JSON \u6587\u4ef6 \u4e2d \u7f16\u7801 \u7684 \u66f2\u7ebf \u5982\u4e0b \u6240\u793a \u3002","title":"\u53d1\u52a8\u673a \u56fe \u6a21\u578b"},{"location":"chrono/vehicle_powertrain/#_4","text":"\u8be5 \u6a21\u578b \u91c7\u7528 \u7b80\u5355 \u7684 \u901f\u5ea6 - \u626d\u77e9 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \uff0c \u6ca1\u6709 \u626d\u77e9 \u8f6c\u6362 \u8f6c\u6362\u5668 \u548c \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 \u53c2\u89c1 ChEngineSimple \u548c EngineSimple \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5177\u6709 CVT \u7c7b \u52a8\u529b \u529b\u7cfb \u7cfb\u7edf \u52a8\u529b\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff0c \u8bf4\u660e \u4e86 \u5404\u79cd \u6a21\u677f \u53c2\u6570 \u3002 { \" Name \" : \" HMMWV Simple Engine \" , \" Type \" : \" Engine \" , \" Template \" : \" EngineSimple \" , \" Maximum Engine Torque \" : 330 , \" Maximum Engine Power \" : 110000 , \" Maximum Engine Speed \" : 10000 }","title":"\u7b80\u5355 \u7684 \u52a8\u529b \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b"},{"location":"chrono/vehicle_terrain/","text":"\u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u5e73\u5766 \u5730\u5f62 \u575a\u786c \u5730\u5f62 \u53ef \u53d8\u5f62 SCM \uff08 \u571f\u58e4 \u63a5\u89e6 \u6a21\u578b \uff09 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u5730\u5f62 \u53ef \u53d8\u5f62 FEA \uff08 ANCF \u5b9e\u4f53 \u5143\u7d20 \uff09 Chrono : : Vehicle \u4e2d \u7684 \u5730\u5f62 \u5bf9\u8c61 \u5fc5\u987b \u63d0\u4f9b \u4ee5\u4e0b \u65b9\u6cd5 \uff1a \u8fd4\u56de \u6307\u5b9a \u4f4d\u7f6e \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u70b9 \u7684 \u5730\u5f62 \u9ad8\u5ea6 \u8fd4\u56de \u6307\u5b9a \u4f4d\u7f6e \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u70b9 \u7684 \u5730\u5f62 \u6cd5\u7ebf \u8fd4\u56de \u6307\u5b9a \u4f4d\u7f6e \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u70b9 \u7684 \u5730\u5f62 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \uff0c \u5176\u4e2d \u5047\u5b9a \u7ed9\u5b9a \u4f4d\u7f6e \u5728 \u5f53\u524d \u4e16\u754c \u6846\u67b6 \u4e2d \u8868\u8fbe \u3002 \u53c2\u89c1 \u57fa\u7c7b ChTerrain \u7684 \u5b9a\u4e49 \u3002 \u4f46 \u8bf7 \u6ce8\u610f \uff0c \u8fd9\u4e9b \u91cf \u4ec5 \u4e0e \u6240\u8c13 \u7684 \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u6709\u5173 \u3002 \u56e0\u6b64 \uff0c \u5b83\u4eec \u4e0d\u9002 \u7528\u4e8e \u53ef \u53d8\u5f62 \u5730\u5f62 \uff08 SCM \u3001 \u9897\u7c92 \u6216 \u57fa\u4e8e FEA \uff09 \u7684 \u60c5\u51b5 \uff0c \u56e0\u4e3a \u53ef \u53d8\u5f62 \u5730\u5f62 \u53ea\u80fd \u4e0e \u521a\u6027 \u6216 FEA \u8f6e\u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u914d\u5408 \u4f7f\u7528 \uff08 \u56e0\u4e3a \u5b83\u4eec \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e \u5e95\u5c42 \u7684 Chrono \u78b0\u649e \u548c \u63a5\u89e6 \u7cfb\u7edf \uff09 \u3002 \u6b64\u5916 \uff0c \u67d0\u4e9b \u8f6e\u80ce \u6a21\u578b \u53ef\u80fd \u4f1a \u4f7f\u7528 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u503c\u6765 \u4fee\u6539 \u8f6e\u80ce \u7279\u6027 \uff0c \u4f46 \u4e0d\u4f1a \u5bf9 \u5730\u5f62 \u4e0e \u5176\u4ed6 \u7269\u4f53 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u4ea7\u751f \u5f71\u54cd \uff08 \u5305\u62ec \u672a \u660e\u786e \u4f7f\u7528 \u5b83 \u7684 \u8f6e\u80ce \u6a21\u578b \uff09 \u3002 ChTerrain \u57fa\u7c7b \u8fd8 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u51fd\u5b50 \u5bf9\u8c61 ChTerrain : : FrictionFunctor \uff0c \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7528\u4e8e \u6307\u5b9a \u4f4d\u7f6e \u76f8\u5173 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u7684 \u63a5\u53e3 \u3002 \u7528\u6237 \u5fc5\u987b \u5b9e\u73b0 \u4ece\u6b64 \u57fa\u7c7b \u6d3e\u751f \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7c7b \uff0c \u5e76 \u5b9e\u73b0 \u865a\u62df \u65b9\u6cd5 operator ( ) \u4ee5 \u8fd4\u56de \u7ed9\u5b9a \u4f4d\u7f6e \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u70b9 \u7684 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \uff08 x , y , z \uff09 \u4f4d\u7f6e \uff08 \u5047\u5b9a \u5728 \u5f53\u524d \u4e16\u754c \u6846\u67b6 \u4e2d \u8868\u8fbe \uff09 \u3002 \u5e73\u5766 \u5730\u5f62 FlatTerrain \u662f \u4e00\u4e2a \u6c34\u5e73 \u5e73\u9762 \u6c34\u5e73\u9762 \u6a21\u578b \uff0c \u5177\u6709 \u65e0\u9650 \u5ef6\u4f38 \uff0c \u4f4d\u4e8e \u7528\u6237 \u6307\u5b9a \u7684 \u9ad8\u5ea6 \u3002 FlatTerrain : : GetCoefficientFriction \u65b9\u6cd5 \u8fd4\u56de \u6784\u9020 \u65f6 \u6307\u5b9a \u7684 \u6052\u5b9a \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \uff0c \u6216\u8005 \uff0c \u5982\u679c FrictionFunctor \u5df2 \u6ce8\u518c \u5bf9\u8c61 \uff0c \u5219 \u8fd4\u56de \u5176 \u8fd4\u56de \u8fd4\u56de\u503c \u3002 \u7531\u4e8e \u5e73\u5766 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u4e0d \u5e26\u6709 \u4efb\u4f55 \u78b0\u649e \u548c \u63a5\u89e6 \u4fe1\u606f \uff0c \u56e0\u6b64 \u5b83 \u53ea\u80fd \u4e0e \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u4e00\u8d77 \u4f7f\u7528 \u3002 \u575a\u786c \u5730\u5f62 RigidTerrain \u662f \u5177\u6709 \u4efb\u610f \u51e0\u4f55 \u5f62\u72b6 \u7684 \u521a\u6027 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u3002 \u521a\u6027 \u5730\u5f62 \u88ab \u6307\u5b9a \u4e3a \u4e00\u7ec4 \u9762\u7247 \uff0c \u6bcf\u4e2a \u9762\u7247 \u53ef\u4ee5 \u662f \u4ee5\u4e0b \u4e4b\u4e00 \uff1a \u4e00\u4e2a \u77e9\u5f62 \u77e9\u5f62\u6846 \uff0c \u53ef\u80fd \u5df2 \u65cb\u8f6c \uff1b \u201c \u9a71\u52a8 \u201d \u8868\u9762 \u662f \u6846 \u7684 \u9876\u9762 \uff08 \u5728 \u4e16\u754c \u7684 \u5782\u76f4 \u65b9\u5411 \u4e0a \uff09 \u4ece \u7528\u6237 \u6307\u5b9a \u7684 Wavefront OBJ \u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7684 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \u901a\u8fc7 \u7a0b\u5e8f \u4ece \u7528\u6237 \u6307\u5b9a \u7684 \u7070\u5ea6 BMP \u56fe\u50cf \u751f\u6210 \u7684 \u4e09\u89d2 \u7f51\u683c \u521a\u6027 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u53ef \u4e0e \u4efb\u4f55 Chrono : : Vehicle \u8f6e\u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u76d2\u72b6 \u9762\u7247 \u7531 \u9876\u9762 \uff08 \u9a71\u52a8 \u9762 \uff09 \u4e2d\u5fc3 \u3001 \u9876\u9762 \u6cd5\u7ebf \u548c \u9762\u7247 \u5c3a\u5bf8 \uff08 \u957f\u5ea6 \u3001 \u5bbd\u5ea6 \u548c \u53ef\u9009 \u539a\u5ea6 \uff09 \u6307\u5b9a \u3002 \u76d2\u72b6 \u9762\u7247 \u4e5f \u53ef\u4ee5 \u7531 \u591a\u4e2a \u76f8\u90bb \u7684 \u56fe\u5757 \u521b\u5efa \uff0c \u6bcf\u4e2a \u56fe\u5757 \u90fd \u662f Chrono \u76d2\u72b6 \u63a5\u89e6 \u5f62\u72b6 \uff1b \u5bf9\u4e8e \u6c34\u5e73 \u8303\u56f4 \u8f83\u5927 \u7684 \u76d2 \u72b6 \u9762\u7247 \uff0c \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u56e0\u4e3a \u8be5 \u5c3a\u5bf8 \u7684 \u5355\u4e2a \u78b0\u649e \u5f62\u72b6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u7b97\u6cd5 \u51fa\u73b0 \u9519\u8bef \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 \u7f51\u683c \u521a\u6027 \u5730\u5f62 \u8d34\u7247 \u7684 \u793a\u4f8b \u3002 \u5047\u8bbe \u7f51\u683c \u76f8\u5bf9 \u4e8e ISO \u53c2\u8003 \u6846\u67b6 \u63d0\u4f9b \uff0c \u5e76\u4e14 \u6ca1\u6709 \u201c \u60ac\u5782 \u201d \uff08 \u6362\u53e5 \u6362\u53e5\u8bdd \u6362\u53e5\u8bdd\u8bf4 \uff0c \u5782\u76f4 \u5c04\u7ebf \u6700\u591a \u4e0e \u7f51\u683c \u76f8\u4ea4 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \uff09 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u9009\u62e9 \u5c06 \u5730\u5f62 \u7f51\u683c \u7684 \u201c \u539a\u5ea6 \u201d \u6307\u5b9a \u4e3a \u626b\u63cf \u7403\u4f53 \u7684 \u534a\u5f84 \u3002 \u4e3a\u6b64 \u534a\u5f84 \u6307\u5b9a \u4e00\u4e2a \u5c0f \u7684 \u6b63\u503c \u53ef\u4ee5 \u663e\u8457 \u63d0\u9ad8 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u7b97\u6cd5 \u7684 \u7a33\u5065 \u7a33\u5065\u6027 \u3002 \u9ad8\u5ea6 \u56fe \u8865\u4e01 \u901a\u8fc7 \u7070\u5ea6 BMP \u56fe\u50cf \uff08 \u5982\u4e0b \u6240\u793a \uff09 \u3001 \u8865\u4e01 \u7684 \u6c34\u5e73 \u8303\u56f4 \uff08 \u957f\u5ea6 \u548c \u5bbd\u5ea6 \uff09 \u548c \u9ad8\u5ea6 \u8303\u56f4 \uff08 \u6700\u5c0f \u548c \u6700\u5927 \u9ad8\u5ea6 \uff09 \u6307\u5b9a \u3002 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \u662f \u901a\u8fc7 \u7f16\u7a0b \u751f\u6210 \u7684 \uff0c \u65b9\u6cd5 \u662f \u4e3a \u8f93\u5165 BMP \u56fe\u50cf \u4e2d \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u521b\u5efa \u4e00\u4e2a \u7f51\u683c \u9876\u70b9 \uff0c \u5728 \u6c34\u5e73 \u9762\u4e0a \u62c9\u4f38 \u7f51\u683c \u4ee5 \u5339\u914d \u7ed9\u5b9a \u7684 \u8303\u56f4 \uff0c \u5e76 \u5728 \u5782\u76f4 \u65b9\u5411 \u4e0a \u62c9\u4f38 \u7f51\u683c \uff0c \u4f7f\u5f97 \u6700\u5c0f \u9ad8\u5ea6 \u5bf9\u5e94 \u4e8e \u5b8c\u7f8e \u7684 \u9ed1\u8272 \u50cf\u7d20 \u989c\u8272 \uff0c \u6700\u5927 \u9ad8\u5ea6 \u5bf9\u5e94 \u4e8e \u5b8c\u7f8e \u7684 \u767d\u8272 \u50cf\u7d20 \u3002 \u9ad8\u5ea6 \u548c \u6cd5\u7ebf \u8ba1\u7b97 \u3002 RigidTerrain : : GetHeight \u548c RigidTerrain : : GetNormal \u7684 \u5b9e\u73b0 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e \u76f8\u5bf9 \u6602\u8d35 \u7684 \u5149\u7ebf \u6295\u5c04 \u64cd\u4f5c \uff1a \u5728 \u6240\u6709 \u7ec4\u6210 \u9762\u7247 \u4e0a \u4ece \u4e0a\u65b9 \u6295\u5c04 \u5782\u76f4 \u5149\u7ebf \uff0c \u5e76 \u62a5\u544a \u76f8\u4ea4 \u70b9 \u7684 \u9ad8\u5ea6 \u548c \u6cd5\u7ebf \u3002 \u5bf9\u4e8e \u76d2\u5b50 \u9762\u7247 \uff0c \u5149\u7ebf \u6295\u5c04 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5206\u6790 \u5b9e\u73b0 \uff0c \u8be5 \u5b9e\u73b0 \u4f1a \u627e\u5230 \u5149\u7ebf \u4e0e \u76d2\u5b50 \u57df \u9876\u9762 \u7684 \u4ea4\u70b9 \uff1b \u5bf9\u4e8e \u57fa\u4e8e \u7f51\u683c \u7684 \u9762\u7247 \uff0c \u5149\u7ebf \u6295\u5c04 \u5c06 \u63a8\u8fdf \u5230 \u5e95\u5c42 \u78b0\u649e \u7cfb\u7edf \u3002 \u5982\u679c \u6ca1\u6709 \u76f8\u4ea4 \u7684 \u9762\u7247 \uff0c \u8fd9\u4e9b \u51fd\u6570 \u5c06 \u8fd4\u56de 0 \u548c \u4e16\u754c \u7684 \u5782\u76f4 \u65b9\u5411 \u3002 \u4f4d\u7f6e \u76f8\u5173 \u7684 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u3002 \u521a\u6027 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u652f\u6301 \u5bf9\u8c61 \u7684 \u5b9a\u4e49 FrictionFunctor \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8fd9\u6837 \u7684 \u51fd\u5b50 \uff0c RigidTerrain : : GetCoefficientFriction \u5c06 \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u65b9\u6cd5 \u6765 \u8bc6\u522b \u6b63\u786e \u7684 \u8865\u4e01 \uff0c \u5e76 \u8fd4\u56de \u8be5 \u8865\u4e01 \u7684 \uff08 \u6052\u5b9a \uff09 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 \u51fd\u5b50 \uff0c RigidTerrain : : GetCoefficientFriction \u53ea\u4f1a \u8fd4\u56de \u5176\u503c \u3002 \u4f46\u662f \uff0c \u5904\u7406 \u4e0e \u5730\u5f62 \u7684 \u63a5\u89e6 \uff08 \u4f8b\u5982 \uff0c \u4f7f\u7528 \u521a\u6027 \u8f6e\u80ce \u6216 \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u65f6 \uff09 \u76f8\u5bf9 \u6602\u8d35 \uff1a \u6bcf\u6b21 \u8c03\u7528 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u7b97\u6cd5 \u65f6 \uff08 \u5373 \u6bcf\u4e2a \u6a21\u62df \u6b65\u9aa4 \u4e00\u6b21 \uff09 \uff0c \u90fd \u4f1a \u904d\u5386 Chrono \u7cfb\u7edf \u4e2d \u6240\u6709 \u63a5\u89e6 \u7684 \u5217\u8868 \u4ee5 \u62e6\u622a \u6240\u6709 \u6d89\u53ca \u521a\u6027 \u5730\u5f62 \u8865\u4e01 \u78b0\u649e \u6a21\u578b \u7684 \u63a5\u89e6 \uff1b \u5bf9\u4e8e \u8fd9\u4e9b \u63a5\u89e6 \uff0c \u590d\u5408 \u6750\u6599 \u590d\u5408\u6750\u6599 \u5c5e\u6027 \u4f1a \u88ab \u4fee\u6539 \u4ee5 \u8003\u8651 \u63a5\u89e6 \u89e6\u70b9 \u63a5\u89e6\u70b9 \u5904 \u7684 \u5730\u5f62 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u3002 \u521a\u6027 \u5730\u5f62 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u7a0b \u6784\u5efa \uff0c \u4e00\u6b21 \u5b9a\u4e49 \u4e00\u4e2a \u8865\u4e01 \uff0c \u6216\u8005 \u5728 JSON \u6587\u4ef6 \u4e2d \u6307\u5b9a \uff0c \u5982\u4e0b \u6240\u793a \uff1a { \" Name \" : \" Rigid plane \" , \" Type \" : \" Terrain \" , \" Template \" : \" RigidTerrain \" , \" Patches \" : [ / / Patch 1 : box { \" Location \" : [ - 15 , 0 , 0 ] , \" Orientation \" : [ 1 , 0 , 0 , 0 ] , \" Geometry \" : { \" Dimensions \" : [ 60 , 20 , 2 ] } , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.01 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Visualization \" : { \" Color \" : [ 1.0 , 0.5 , 0.5 ] , \" Texture File \" : \" terrain / textures / tile4 . jpg \" , \" Texture Scaling \" : [ 60 , 20 ] } } , / / Patch 2 : box { \" Location \" : [ 20 , 0 , 0.1 ] , \" Orientation \" : [ 1 , 0 , 0 , 0 ] , \" Geometry \" : { \" Dimensions \" : [ 20 , 30 , 2 ] } , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.01 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Visualization \" : { \" Color \" : [ 1.0 , 0.5 , 0.5 ] } } , / / Patch 3 : height - map { \" Location \" : [ 0 , 42 , 0 ] , \" Orientation \" : [ 1 , 0 , 0 , 0 ] , \" Geometry \" : { \" Height Map Filename \" : \" terrain / height _ maps / bump64 . bmp \" , \" Size \" : [ 64 , 64 ] , \" Height Range \" : [ 0 , 3 ] } , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.01 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Visualization \" : { \" Color \" : [ 1.0 , 1.0 , 1.0 ] , \" Texture File \" : \" terrain / textures / grass . jpg \" , \" Texture Scaling \" : [ 64 , 64 ] } } , / / Patch 4 : Mesh { \" Location \" : [ 0 , - 42 , 0 ] , \" Orientation \" : [ 1 , 0 , 0 , 0 ] , \" Geometry \" : { \" Mesh Filename \" : \" terrain / meshes / bump . obj \" } , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.01 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Visualization \" : { \" Color \" : [ 0.5 , 0.5 , 0.8 ] , \" Texture File \" : \" terrain / textures / dirt . jpg \" , \" Texture Scaling \" : [ 200 , 200 ] } } ] } CRG \u5730\u5f62 CRGTerrain \u662f \u6839\u636e OpenCRG \u9053\u8def \u89c4\u8303 \u6784\u5efa \u7684 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u3002 \u8981 \u4f7f\u7528 \u6b64 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \uff0c \u7528\u6237 \u5fc5\u987b \u5b89\u88c5 OpenCRG SDK \u5e76 \u5728 CMake \u914d\u7f6e \u671f\u95f4 \u542f\u7528 \u5176 \u4f7f\u7528 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 Chrono : : Vehicle \u5b89\u88c5 \u8bf4\u660e \uff09 \u3002 CRG \u5730\u5f62 \u4ece \u89c4\u8303 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u4e0b\u9762 \u5217\u51fa \u7684 \u6587\u4ef6 \uff09 \u521b\u5efa \u9053\u8def \u8f6e\u5ed3 \uff08 \u5177\u6709 \u76f8\u5173 \u5bbd\u5ea6 \u7684 3D \u8def\u5f84 \uff09 \uff0c \u5e76 \u5b9e\u73b0 \u51fd\u6570 CRGTerrain : : GetHeight \u548c CRGTerrain : : GetNormal \u4ee5 \u4f7f\u7528 \u6b64 \u89c4\u8303 \u3002 \u8bf7 \u6ce8\u610f \uff0c crg \u89c4\u8303 \u6587\u4ef6 \u53ef\u4ee5 \u662f ASCII \u6216 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 * Emacs major mode to be selected automagically : - * - CASCaDE - * - * $ Id : handmade _ curved _ minimalist . crg 21 2009 - 06 - 23 15 : 03 : 13Z jorauh $ $ CT CRG file example for road surface description ( width : 3m , length : 22m ) with curved reference line and grid of ( 0.25 m ... 1.0 m ) x 1.0 m . A minimalist file can have an empty $ CT , a minimalist $ ROAD _ CRG block , and no comments marked by asterisk \" * \" in column 1 or marked by \" ! \" in other columns . So this file is completely equivalent to its commented version in handmade _ curved . crg . Copyright 2005 - 2009 OpenCRG - Daimler AG - Jochen Rauh Licensed under the Apache License , Version 2.0 ( the \" License \" ) ; you may not use this file except in compliance with the License . You may obtain a copy of the License at http : / / www . apache . org / licenses / LICENSE - 2.0 Unless required by applicable law or agreed to in writing , software distributed under the License is distributed on an \" AS IS \" BASIS , WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied . See the License for the specific language governing permissions and limitations under the License . More Information on OpenCRG open file formats and tools can be found at http : / / www . opencrg . org $ $ ROAD _ CRG REFERENCE _ LINE _ INCREMENT = 1.0 $ $ KD _ Definition # : LRFI D : reference line phi , rad D : long section at v = - 1.500 , m D : long section at v = - 1.250 , m D : long section at v = - 1.000 , m D : long section at v = 0.000 , m D : long section at v = 1.000 , m D : long section at v = 1.250 , m D : long section at v = 1.500 , m $ * * unused * * 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 0.0000000 0.0110000 0.0000000 0.0000000 0.0111111 0.0111111 0.0111111 0.0000000 0.0000000 0.0220000 0.0000000 0.0111111 0.0111111 0.0111111 0.0111111 0.0111111 0.0000000 0.0330000 0.0000000 0.0000000 0.0111111 0.0111111 0.0111111 0.0000000 0.0000000 0.0440000 0.0111111 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 0.0111111 0.0550000 0.0111111 0.0111111 0.0000000 0.0000000 0.0000000 0.0111111 0.0222222 0.0660000 0.0111111 0.0111111 0.0111111 0.0000000 0.0111111 0.0222222 0.0333333 0.0770000 0.0111111 0.0111111 0.0000000 0.0000000 0.0000000 0.0111111 0.0222222 0.0880000 0.0111111 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 0.0111111 0.0990000 0.0000000 0.0000000 0.0111111 0.0222222 0.0111111 0.0000000 0.0000000 0.1100000 0.0000000 0.0111111 0.0222222 0.0222222 0.0222222 0.0111111 0.0000000 0.1100000 0.0000000 0.0000000 0.0111111 0.0222222 0.0111111 0.0000000 0.0000000 0.0990000 0.0111111 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 - 0.0111111 0.0880000 0.0111111 0.0111111 0.0000000 0.0000000 0.0000000 - 0.0111111 - 0.0222222 0.0770000 0.0111111 0.0111111 0.0111111 0.0000000 - 0.0111111 - 0.0222222 - 0.0333333 0.0660000 0.0111111 0.0111111 0.0000000 0.0000000 0.0000000 - 0.0111111 - 0.0222222 0.0550000 0.0111111 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 - 0.0111111 0.0440000 0.0000000 0.0000000 0.0111111 0.0222222 0.0111111 0.0000000 0.0000000 0.0330000 0.0000000 0.0111111 0.0222222 0.0333333 0.0222222 0.0111111 0.0000000 0.0220000 0.0000000 0.0000000 0.0111111 0.0222222 0.0111111 0.0000000 0.0000000 0.0110000 0.0000000 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 CRG \u5730\u5f62 \u53ef\u4ee5 \u89c6\u4e3a \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \uff08 \u4ee3\u8868 \u9053\u8def \u201c \u5e26 \u201d \uff09 \u6216 \u4e00\u7ec4 3D \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \uff08 \u4ee3\u8868 \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u548c \u9053\u8def \u4e24\u4fa7 \uff09 \u3002 CRGTerrain \u7684 \u5176\u4ed6 \u529f\u80fd \u5305\u62ec \uff1a \u80fd\u591f \u5bfc\u51fa \u9053\u8def \u7f51\u683c \uff08 \u4f5c\u4e3a \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \uff09 \u80fd\u591f \u5bfc\u51fa \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \uff08 \u4f5c\u4e3a \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \uff09 \u9053\u8def \u957f\u5ea6 \u548c \u5bbd\u5ea6 \u7684 \u62a5\u544a \u65b9\u6cd5 \u4e0b\u56fe \u5c55\u793a \u4e86 \u4f7f\u7528 \u4e09\u89d2 \u7f51\u683c \u6216 \u9053\u8def \u8fb9\u754c \u66f2\u7ebf \u7684 CRG \u9053\u8def \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7531\u4e8e CRG \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u76ee\u524d \u4e0d \u643a\u5e26 \u4efb\u4f55 \u78b0\u649e \u548c \u63a5\u89e6 \u4fe1\u606f \uff0c \u56e0\u6b64 \u5b83 \u53ea\u80fd \u4e0e \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u4e00\u8d77 \u4f7f\u7528 \u3002 \u53ef \u53d8\u5f62 SCM \uff08 \u571f\u58e4 \u63a5\u89e6 \u6a21\u578b \uff09 \u5728 SCMTerrain \u4e2d \uff0c \u5730\u5f62 \u7531 \u9690\u5f0f \u89c4\u5219 \u5361\u5c14 \u7b1b\u5361\u5c14 \u7f51\u683c \u8868\u793a \uff0c \u5176 \u53d8\u5f62 \u901a\u8fc7 \u5176 \u8282\u70b9 \u7684 \u5782\u76f4 \u504f\u8f6c \u5b9e\u73b0 \u3002 \u8be5 \u571f\u58e4 \u6a21\u578b \u501f\u9274 \u4e86 Chrono \u4e2d \u7684 \u901a\u7528 \u78b0\u649e \u5f15\u64ce \uff0c \u5176 \u8f7b\u91cf \u91cf\u7ea7 \u8f7b\u91cf\u7ea7 \u516c\u5f0f \u5141\u8bb8 \u8fd1\u4e4e \u5b9e\u65f6 \u5730 \u8ba1\u7b97 \u8f66\u8f86 \u4e0e \u5730\u5f62 \u7684 \u63a5\u89e6 \u89e6\u529b \u63a5\u89e6\u529b \u3002 \u4e3a\u4e86 \u89e3\u51b3 \u5185\u5b58 \u548c \u8ba1\u7b97 \u6548\u7387 \u95ee\u9898 \uff0c \u4ece\u672a \u660e\u786e \u521b\u5efa \u7f51\u683c \u3002 \u76f8\u53cd \uff0c \u53ea \u5728 \u54c8 \u5e0c\u56fe \u4e2d \u7ef4\u62a4 \u5df2 \u53d8\u5f62 \u7684 \u8282\u70b9 \u3002 \u6b64\u5916 \uff0c \u78b0\u649e \u7cfb\u7edf \u4e2d \u7684 \u5149\u7ebf \u6295\u5c04 \uff08 SCM \u8ba1\u7b97 \u4e2d \u6700 \u6602\u8d35 \u7684 \u64cd\u4f5c \uff09 \u662f \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u7684 \u3002 \u4e3a\u4e86 \u9ad8\u6548 \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u53d8\u5f62 \u7684 \u5730\u5f62 \uff0c Chrono SCM \u7cfb\u7edf \u5b50\u7cfb\u7edf \u63d0\u4f9b \u4e86 \u9010\u6b65 \u66f4\u65b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7f51\u683c \u7684 \u65b9\u6cd5 \uff0c \u5e76\u4e14 \u5728 \u4f7f\u7528 \u5916\u90e8 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7cfb\u7edf \u65f6 \u62a5\u544a \u4e0a \u4e00\u4e2a \u65f6\u95f4 \u6b65\u5185 \u53d8\u5f62 \u7684 \u8282\u70b9 \u5b50\u96c6 \u3002 \u4e0b\u56fe \u6240\u793a \uff0c \u8f6e\u80ce \u5728 \u53ef \u53d8\u5f62 \u571f\u58e4 \u4e2d \u7559\u4e0b \u8f66\u8f99 \uff0c \u8bf4\u660e \u4e86 SCM \u7684 Chrono \u7248\u672c \u7684 \u7f51\u683c \u7ed3\u6784 \u3002 SCM \u57fa\u4e8e \u534a \u7ecf\u9a8c \u6a21\u578b \uff0c \u53c2\u6570 \u5f88\u5c11 \uff0c \u56e0\u6b64 \u5f88 \u5bb9\u6613 \u6839\u636e \u5b9e\u9a8c \u7ed3\u679c \u8fdb\u884c \u6821\u51c6 \u3002 \u5b83 \u53ef\u4ee5 \u88ab \u89c6\u4e3a Bekker - Wong \u6a21\u578b \u7684 \u63a8\u5e7f \uff0c \u9002\u7528 \u4e8e \u4efb\u610f \u4e09\u7ef4 \u5f62\u72b6 \u7684 \u8f66\u8f6e \uff08 \u6216 \u5c65\u5e26 \u677f \uff09 \u3002 \u5bf9\u4e8e \u5728 \u53ef \u53d8\u5f62 \u571f\u58e4 \u4e0a \u79fb\u52a8 \u7684 \u8f66\u8f6e \uff0c Bekker \u516c\u5f0f \u63d0\u4f9b \u4e86 \u538b\u529b \u4e0e \u571f\u58e4 \u5782\u76f4 \u53d8\u5f62 \u4e4b\u95f4 \u7684 \u5173\u7cfb \uff1a \u8fd9\u91cc \u03c3 \u662f \u63a5\u89e6 \u63a5\u89e6\u9762 \u538b\u529b \uff0c y \u662f \u8f66\u8f6e \u4e0b\u6c89 \uff0c $ k _ c $ \u662f \u8868\u793a \u571f\u58e4 \u7c98\u7ed3 \u6548\u5e94 \u7684 \u7ecf\u9a8c \u7cfb\u6570 \uff0c k \u03c6 \u662f \u8868\u793a \u571f\u58e4 \u521a\u5ea6 \u7684 \u7ecf\u9a8c \u7cfb\u6570 \uff0c n \u662f \u8868\u8fbe \u786c\u5316 \u6548\u5e94 \u7684 \u6307\u6570 \uff0c \u5b83 \u968f\u7740 \u571f\u58e4 \u7684 \u538b\u5b9e \u800c \u7ebf\u6027 \u975e\u7ebf\u6027 \u5730 \u589e\u52a0 \u3002 \u6700\u540e \uff0c b \u662f \u77e9\u5f62 \u63a5\u89e6 \u8db3\u8ff9 \u8f83 \u77ed\u8fb9 \u7684 \u957f\u5ea6 \uff08 \u56e0\u4e3a \u539f\u59cb Bekker \u7406\u8bba \u5047\u8bbe \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u8f6e\u80ce \u5728 \u5e73\u5766 \u5730\u5f62 \u4e0a \u6eda\u52a8 \uff09 \u3002 \u5bf9\u4e8e \u901a\u7528 \u63a5\u89e6 \u8db3\u8ff9 \uff0c \u957f\u5ea6 b \u4e0d\u80fd \u50cf \u539f\u59cb Bekker \u6a21\u578b \u90a3\u6837 \u89e3\u91ca \uff1b \u76f8\u53cd \uff0c \u6211\u4eec \u901a\u8fc7 \u9996\u5148 \u83b7\u53d6 \u6240\u6709 \u8fde\u63a5 \u7684 \u63a5\u89e6 \u63a5\u89e6\u9762 \uff08 \u4f7f\u7528 \u6cdb\u6d2a \u7b97\u6cd5 \uff09 \u5e76 \u4f7f\u7528 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u6765 \u4f30\u8ba1 \u8fd9\u4e2a \u957f\u5ea6 b = 2A / L \u8fd9\u91cc A \u662f \u63a5\u89e6 \u9762\u79ef \u7684 \u9762\u79ef \uff0c L \u662f \u5b83 \u7684 \u5468\u957f \u3002 Chrono SCM \u5b9e\u73b0 \u7684 \u5176\u4ed6 \u4e00\u4e9b \u529f\u80fd \u5305\u62ec \uff1a \u521d\u59cb \u672a \u53d8\u5f62 \u7f51\u683c \u53ef\u4ee5 \u521b\u5efa \u4e3a \u5e38\u89c4 \u5e73\u94fa \u7f51\u683c \uff08 \u586b\u5145 \u5e73\u9762 \u77e9\u5f62 \uff09 \u4ece \u9ad8\u5ea6 \u56fe \uff08 \u4ee5 \u7070\u5ea6 BMP \u56fe\u50cf \u63d0\u4f9b \uff09 \u4ee5 \u7f16\u7a0b \u65b9\u5f0f \u652f\u6301 \u4efb\u610f \u65b9\u5411 \u7684 \u5730\u5f62 \u53c2\u8003 \u5e73\u9762 \uff1b \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5730\u5f62 \u88ab \u5b9a\u4e49 \u4e3a \uff08 x , y \uff09 \u5e73\u9762 \u662f ISO \u6846\u67b6 \u652f\u6301 \u79fb\u52a8 \u9762\u7247 \u65b9\u6cd5 \uff0c \u5176\u4e2d \u5149\u7ebf \u6295\u5c04 \uff08 \u6210\u672c \u6700\u9ad8 \u7684 \u64cd\u4f5c \uff09 \u88ab \u9650\u5236 \u5728 \u6307\u5b9a \u7684 \u8303\u56f4 \u5185 \u2014 \u2014 \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u79fb\u52a8 \u7684 \u77e9\u5f62 \u9762\u7247 \u6216 \u8fb9\u754c \u6846 \u7684 \u6295\u5f71 \u652f\u6301 \u6307\u5b9a \u4e0e \u4f4d\u7f6e \u76f8\u5173 \u7684 \u571f\u58e4 \u53c2\u6570 \uff1b \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u63d0\u4f9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u56de\u8c03 \u7c7b\u6765 \u5b9e\u73b0 \uff0c \u8be5 \u56de\u8c03 \u7c7b \u5b9e\u73b0 \u4e00\u79cd \u8fd4\u56de \u7ed9\u5b9a \u4f4d\u7f6e \u7684 \u6240\u6709 \u571f\u58e4 \u53c2\u6570 \u7684 \u65b9\u6cd5 \uff08 x , y \uff09 \u5730\u5f62 \u53c2\u8003 \u5e73\u9762 \u4e2d \u6307\u5b9a \u7684 \u70b9 \u3002 \u53c2\u89c1 SCMTerrain : : SoilParametersCallback \u7531\u4e8e \u4e0e \u8fd9\u79cd \u5730\u5f62 \u7c7b\u578b \u7684 \u4ea4\u4e92 \u662f \u901a\u8fc7 \u5e95\u5c42 \u7684 Chrono \u63a5\u89e6 \u7cfb\u7edf \u5b8c\u6210 \u7684 \uff0c \u56e0\u6b64 \u5b83 \u53ef\u4ee5 \u4e0e \u521a\u6027 \u6216 FE A\u8f6e \u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7ed3\u5408 \u4f7f\u7528 \u3002 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u5730\u5f62 GranularTerrain \u5b9e\u73b0 \u4e86 \u77e9\u5f62 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u6750\u6599 \u5757 \uff0c \u5e76 \u5229\u7528 \u4e86 Chrono \u5bf9 \u6240\u8c13 \u7684 \u79bb\u6563 \u5143\u6cd5 ( DEM ) \u6a21\u62df \u7684 \u5e7f\u6cdb \u652f\u6301 \u5e7f\u6cdb\u652f\u6301 \u3002 \u76ee\u524d \uff0c \u6b64 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u5355 \u5206\u6563 \u7403\u5f62 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u6750\u6599 \u3002 \u7531\u4e8e \u6a21\u62df \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u9700\u8981 \u5927\u91cf \u8ba1\u7b97 \uff0c Chrono : : Vehicle \u4e2d \u7684 GranularTerrain \u5bf9\u8c61 \u652f\u6301 \u201c \u79fb\u52a8 \u5757 \u201d \u65b9\u6cd5 \uff0c \u5176\u4e2d \u6a21\u62df \u53ef\u4ee5 \u9650\u5236 \u5728 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u6750\u6599 \u7bb1\u4e2d \uff0c \u8be5 \u6750\u6599 \u7bb1\u4f1a \u6839\u636e \u6307\u5b9a \u7269\u4f53 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \u5e95\u76d8 \uff09 \u7684 \u4f4d\u7f6e \u4e0d\u65ad \u91cd\u65b0 \u5b9a\u4f4d \u3002 \u76ee\u524d \uff0c \u79fb\u52a8 \u5757 \u53ea\u80fd \u5728 X \uff08 \u524d\u8fdb \uff09 \u65b9\u5411 \u3002 \u4e0b\u9762 \u662f \u4f7f\u7528 \u79fb\u52a8 \u9762\u7247 \u7279\u5f81 \u5728 GranularTerrain \u4e0a \u8fdb\u884c \u8f66\u8f86 \u52a0\u901f \u6d4b\u8bd5 \u7684 \u793a\u4f8b \u3002 \u6b64 \u6a21\u62df \u4f7f\u7528 \u8d85\u8fc7 700 , 000 \u4e2a \u7c92\u5b50 \u548c Chrono : : Multicore \u6a21\u5757 \u8fdb\u884c \u591a\u6838 \u5e76\u884c \u6a21\u62df \u3002 GranularTerrain \u7684 \u5176\u4ed6 \u529f\u80fd \u5305\u62ec \uff1a \u5206\u5c42 \u751f\u6210 \u521d\u59cb \u7c92\u5b50 \u4f4d\u7f6e \uff0c \u7c92\u5b50 \u4f4d\u7f6e \u5728 \u6c34\u5e73 \u9762\u4e0a \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \uff0c \u4e14 \u4fdd\u8bc1 \u4e0d \u5c0f\u4e8e \u7c92\u5b50 \u534a\u5f84 \u7684 \u4e24\u500d \u5305\u542b \u56fa\u5b9a \u5728 \u8fb9\u754c \u7bb1\u4e0a \u7684 \u9897\u7c92 \uff08 \u4ee5 \u6291\u5236 \u6574\u4e2a \u9897\u7c92 \u6750\u6599 \u5e8a \u7684 \u6ed1\u52a8 \uff09 \uff1b \u7531\u4e8e \u76ee\u524d \u7684 \u9650\u5236 \uff0c \u6b64 \u529f\u80fd \u4e0d\u5e94 \u4e0e \u79fb\u52a8 \u8865\u4e01 \u9009\u9879 \u7ed3\u5408 \u4f7f\u7528 \u7bb1 \u8fb9\u754c \u7684 \u5206\u6790 \u5b9a\u4e49 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u673a\u5236 \u62a5\u544a \u5730\u5f62 \u9ad8\u5ea6 \uff08 \u5b9a\u4e49 \u4e3a \u6700\u5927 \u662f \u6240\u6709 \u7c92\u5b50 \u4f4d\u7f6e \u7684 \u503c \uff09 \u7531\u4e8e \u4e0e \u8fd9\u79cd \u5730\u5f62 \u7c7b\u578b \u7684 \u4ea4\u4e92 \u662f \u901a\u8fc7 \u5e95\u5c42 \u7684 Chrono \u63a5\u89e6 \u7cfb\u7edf \u5b8c\u6210 \u7684 \uff0c \u56e0\u6b64 \u5b83 \u53ef\u4ee5 \u4e0e \u521a\u6027 \u6216 FE A\u8f6e \u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7ed3\u5408 \u4f7f\u7528 \u3002 \u53ef \u53d8\u5f62 FEA \uff08 ANCF \u5b9e\u4f53 \u5143\u7d20 \uff09 FEATerrain \u57fa\u4e8e ChElementHexaANCF _ 3813 _ 9 \u7c7b\u578b \u7684 \u4e13\u7528 FEA \u7816\u5757 \u5143\u7d20 \u63d0\u4f9b \u53ef \u53d8\u5f62 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u3002 \u8be5 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u5141\u8bb8 \uff1a \u5c06 \u76d2\u5b50 \u57df \u79bb\u6563 \u5316\u4e3a \u7528\u6237 \u6307\u5b9a \u7684 \u5143\u7d20 \u6570\u91cf \u6307\u5b9a \u6750\u6599 \u7279\u6027 \uff08 \u5bc6\u5ea6 \u3001 \u5f39\u6027 \u6a21\u91cf \u5f39\u6027\u6a21\u91cf \u3001 \u6cca\u677e\u6bd4 \u3001 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u3001 \u786c\u5316 \u659c\u7387 \u3001 \u81a8\u80c0 \u89d2 \u548c \u6469\u64e6 \u6469\u64e6\u89d2 \uff09 \u6dfb\u52a0 Chrono FEA \u7f51\u683c \u53ef\u89c6 \u53ef\u89c6\u5316 \u8d44\u4ea7 \u7531\u4e8e \u4e0e \u8fd9\u79cd \u5730\u5f62 \u7c7b\u578b \u7684 \u4ea4\u4e92 \u662f \u901a\u8fc7 \u5e95\u5c42 \u7684 Chrono \u63a5\u89e6 \u7cfb\u7edf \u5b8c\u6210 \u7684 \uff0c \u56e0\u6b64 \u5b83 \u53ef\u4ee5 \u4e0e \u521a\u6027 \u6216 FEA \u8f6e\u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7ed3\u5408 \u4f7f\u7528 \u3002","title":"\u5730\u5f62\u6a21\u578b"},{"location":"chrono/vehicle_terrain/#_1","text":"\u5e73\u5766 \u5730\u5f62 \u575a\u786c \u5730\u5f62 \u53ef \u53d8\u5f62 SCM \uff08 \u571f\u58e4 \u63a5\u89e6 \u6a21\u578b \uff09 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u5730\u5f62 \u53ef \u53d8\u5f62 FEA \uff08 ANCF \u5b9e\u4f53 \u5143\u7d20 \uff09 Chrono : : Vehicle \u4e2d \u7684 \u5730\u5f62 \u5bf9\u8c61 \u5fc5\u987b \u63d0\u4f9b \u4ee5\u4e0b \u65b9\u6cd5 \uff1a \u8fd4\u56de \u6307\u5b9a \u4f4d\u7f6e \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u70b9 \u7684 \u5730\u5f62 \u9ad8\u5ea6 \u8fd4\u56de \u6307\u5b9a \u4f4d\u7f6e \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u70b9 \u7684 \u5730\u5f62 \u6cd5\u7ebf \u8fd4\u56de \u6307\u5b9a \u4f4d\u7f6e \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u70b9 \u7684 \u5730\u5f62 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \uff0c \u5176\u4e2d \u5047\u5b9a \u7ed9\u5b9a \u4f4d\u7f6e \u5728 \u5f53\u524d \u4e16\u754c \u6846\u67b6 \u4e2d \u8868\u8fbe \u3002 \u53c2\u89c1 \u57fa\u7c7b ChTerrain \u7684 \u5b9a\u4e49 \u3002 \u4f46 \u8bf7 \u6ce8\u610f \uff0c \u8fd9\u4e9b \u91cf \u4ec5 \u4e0e \u6240\u8c13 \u7684 \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u6709\u5173 \u3002 \u56e0\u6b64 \uff0c \u5b83\u4eec \u4e0d\u9002 \u7528\u4e8e \u53ef \u53d8\u5f62 \u5730\u5f62 \uff08 SCM \u3001 \u9897\u7c92 \u6216 \u57fa\u4e8e FEA \uff09 \u7684 \u60c5\u51b5 \uff0c \u56e0\u4e3a \u53ef \u53d8\u5f62 \u5730\u5f62 \u53ea\u80fd \u4e0e \u521a\u6027 \u6216 FEA \u8f6e\u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u914d\u5408 \u4f7f\u7528 \uff08 \u56e0\u4e3a \u5b83\u4eec \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e \u5e95\u5c42 \u7684 Chrono \u78b0\u649e \u548c \u63a5\u89e6 \u7cfb\u7edf \uff09 \u3002 \u6b64\u5916 \uff0c \u67d0\u4e9b \u8f6e\u80ce \u6a21\u578b \u53ef\u80fd \u4f1a \u4f7f\u7528 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u503c\u6765 \u4fee\u6539 \u8f6e\u80ce \u7279\u6027 \uff0c \u4f46 \u4e0d\u4f1a \u5bf9 \u5730\u5f62 \u4e0e \u5176\u4ed6 \u7269\u4f53 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u4ea7\u751f \u5f71\u54cd \uff08 \u5305\u62ec \u672a \u660e\u786e \u4f7f\u7528 \u5b83 \u7684 \u8f6e\u80ce \u6a21\u578b \uff09 \u3002 ChTerrain \u57fa\u7c7b \u8fd8 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u51fd\u5b50 \u5bf9\u8c61 ChTerrain : : FrictionFunctor \uff0c \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7528\u4e8e \u6307\u5b9a \u4f4d\u7f6e \u76f8\u5173 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u7684 \u63a5\u53e3 \u3002 \u7528\u6237 \u5fc5\u987b \u5b9e\u73b0 \u4ece\u6b64 \u57fa\u7c7b \u6d3e\u751f \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7c7b \uff0c \u5e76 \u5b9e\u73b0 \u865a\u62df \u65b9\u6cd5 operator ( ) \u4ee5 \u8fd4\u56de \u7ed9\u5b9a \u4f4d\u7f6e \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u70b9 \u7684 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \uff08 x , y , z \uff09 \u4f4d\u7f6e \uff08 \u5047\u5b9a \u5728 \u5f53\u524d \u4e16\u754c \u6846\u67b6 \u4e2d \u8868\u8fbe \uff09 \u3002","title":"\u5730\u5f62\u6a21\u578b"},{"location":"chrono/vehicle_terrain/#_2","text":"FlatTerrain \u662f \u4e00\u4e2a \u6c34\u5e73 \u5e73\u9762 \u6c34\u5e73\u9762 \u6a21\u578b \uff0c \u5177\u6709 \u65e0\u9650 \u5ef6\u4f38 \uff0c \u4f4d\u4e8e \u7528\u6237 \u6307\u5b9a \u7684 \u9ad8\u5ea6 \u3002 FlatTerrain : : GetCoefficientFriction \u65b9\u6cd5 \u8fd4\u56de \u6784\u9020 \u65f6 \u6307\u5b9a \u7684 \u6052\u5b9a \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \uff0c \u6216\u8005 \uff0c \u5982\u679c FrictionFunctor \u5df2 \u6ce8\u518c \u5bf9\u8c61 \uff0c \u5219 \u8fd4\u56de \u5176 \u8fd4\u56de \u8fd4\u56de\u503c \u3002 \u7531\u4e8e \u5e73\u5766 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u4e0d \u5e26\u6709 \u4efb\u4f55 \u78b0\u649e \u548c \u63a5\u89e6 \u4fe1\u606f \uff0c \u56e0\u6b64 \u5b83 \u53ea\u80fd \u4e0e \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u4e00\u8d77 \u4f7f\u7528 \u3002","title":"\u5e73\u5766 \u5730\u5f62"},{"location":"chrono/vehicle_terrain/#_3","text":"RigidTerrain \u662f \u5177\u6709 \u4efb\u610f \u51e0\u4f55 \u5f62\u72b6 \u7684 \u521a\u6027 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u3002 \u521a\u6027 \u5730\u5f62 \u88ab \u6307\u5b9a \u4e3a \u4e00\u7ec4 \u9762\u7247 \uff0c \u6bcf\u4e2a \u9762\u7247 \u53ef\u4ee5 \u662f \u4ee5\u4e0b \u4e4b\u4e00 \uff1a \u4e00\u4e2a \u77e9\u5f62 \u77e9\u5f62\u6846 \uff0c \u53ef\u80fd \u5df2 \u65cb\u8f6c \uff1b \u201c \u9a71\u52a8 \u201d \u8868\u9762 \u662f \u6846 \u7684 \u9876\u9762 \uff08 \u5728 \u4e16\u754c \u7684 \u5782\u76f4 \u65b9\u5411 \u4e0a \uff09 \u4ece \u7528\u6237 \u6307\u5b9a \u7684 Wavefront OBJ \u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7684 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \u901a\u8fc7 \u7a0b\u5e8f \u4ece \u7528\u6237 \u6307\u5b9a \u7684 \u7070\u5ea6 BMP \u56fe\u50cf \u751f\u6210 \u7684 \u4e09\u89d2 \u7f51\u683c \u521a\u6027 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u53ef \u4e0e \u4efb\u4f55 Chrono : : Vehicle \u8f6e\u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u76d2\u72b6 \u9762\u7247 \u7531 \u9876\u9762 \uff08 \u9a71\u52a8 \u9762 \uff09 \u4e2d\u5fc3 \u3001 \u9876\u9762 \u6cd5\u7ebf \u548c \u9762\u7247 \u5c3a\u5bf8 \uff08 \u957f\u5ea6 \u3001 \u5bbd\u5ea6 \u548c \u53ef\u9009 \u539a\u5ea6 \uff09 \u6307\u5b9a \u3002 \u76d2\u72b6 \u9762\u7247 \u4e5f \u53ef\u4ee5 \u7531 \u591a\u4e2a \u76f8\u90bb \u7684 \u56fe\u5757 \u521b\u5efa \uff0c \u6bcf\u4e2a \u56fe\u5757 \u90fd \u662f Chrono \u76d2\u72b6 \u63a5\u89e6 \u5f62\u72b6 \uff1b \u5bf9\u4e8e \u6c34\u5e73 \u8303\u56f4 \u8f83\u5927 \u7684 \u76d2 \u72b6 \u9762\u7247 \uff0c \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u56e0\u4e3a \u8be5 \u5c3a\u5bf8 \u7684 \u5355\u4e2a \u78b0\u649e \u5f62\u72b6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u7b97\u6cd5 \u51fa\u73b0 \u9519\u8bef \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 \u7f51\u683c \u521a\u6027 \u5730\u5f62 \u8d34\u7247 \u7684 \u793a\u4f8b \u3002 \u5047\u8bbe \u7f51\u683c \u76f8\u5bf9 \u4e8e ISO \u53c2\u8003 \u6846\u67b6 \u63d0\u4f9b \uff0c \u5e76\u4e14 \u6ca1\u6709 \u201c \u60ac\u5782 \u201d \uff08 \u6362\u53e5 \u6362\u53e5\u8bdd \u6362\u53e5\u8bdd\u8bf4 \uff0c \u5782\u76f4 \u5c04\u7ebf \u6700\u591a \u4e0e \u7f51\u683c \u76f8\u4ea4 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \uff09 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u9009\u62e9 \u5c06 \u5730\u5f62 \u7f51\u683c \u7684 \u201c \u539a\u5ea6 \u201d \u6307\u5b9a \u4e3a \u626b\u63cf \u7403\u4f53 \u7684 \u534a\u5f84 \u3002 \u4e3a\u6b64 \u534a\u5f84 \u6307\u5b9a \u4e00\u4e2a \u5c0f \u7684 \u6b63\u503c \u53ef\u4ee5 \u663e\u8457 \u63d0\u9ad8 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u7b97\u6cd5 \u7684 \u7a33\u5065 \u7a33\u5065\u6027 \u3002 \u9ad8\u5ea6 \u56fe \u8865\u4e01 \u901a\u8fc7 \u7070\u5ea6 BMP \u56fe\u50cf \uff08 \u5982\u4e0b \u6240\u793a \uff09 \u3001 \u8865\u4e01 \u7684 \u6c34\u5e73 \u8303\u56f4 \uff08 \u957f\u5ea6 \u548c \u5bbd\u5ea6 \uff09 \u548c \u9ad8\u5ea6 \u8303\u56f4 \uff08 \u6700\u5c0f \u548c \u6700\u5927 \u9ad8\u5ea6 \uff09 \u6307\u5b9a \u3002 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \u662f \u901a\u8fc7 \u7f16\u7a0b \u751f\u6210 \u7684 \uff0c \u65b9\u6cd5 \u662f \u4e3a \u8f93\u5165 BMP \u56fe\u50cf \u4e2d \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u521b\u5efa \u4e00\u4e2a \u7f51\u683c \u9876\u70b9 \uff0c \u5728 \u6c34\u5e73 \u9762\u4e0a \u62c9\u4f38 \u7f51\u683c \u4ee5 \u5339\u914d \u7ed9\u5b9a \u7684 \u8303\u56f4 \uff0c \u5e76 \u5728 \u5782\u76f4 \u65b9\u5411 \u4e0a \u62c9\u4f38 \u7f51\u683c \uff0c \u4f7f\u5f97 \u6700\u5c0f \u9ad8\u5ea6 \u5bf9\u5e94 \u4e8e \u5b8c\u7f8e \u7684 \u9ed1\u8272 \u50cf\u7d20 \u989c\u8272 \uff0c \u6700\u5927 \u9ad8\u5ea6 \u5bf9\u5e94 \u4e8e \u5b8c\u7f8e \u7684 \u767d\u8272 \u50cf\u7d20 \u3002 \u9ad8\u5ea6 \u548c \u6cd5\u7ebf \u8ba1\u7b97 \u3002 RigidTerrain : : GetHeight \u548c RigidTerrain : : GetNormal \u7684 \u5b9e\u73b0 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e \u76f8\u5bf9 \u6602\u8d35 \u7684 \u5149\u7ebf \u6295\u5c04 \u64cd\u4f5c \uff1a \u5728 \u6240\u6709 \u7ec4\u6210 \u9762\u7247 \u4e0a \u4ece \u4e0a\u65b9 \u6295\u5c04 \u5782\u76f4 \u5149\u7ebf \uff0c \u5e76 \u62a5\u544a \u76f8\u4ea4 \u70b9 \u7684 \u9ad8\u5ea6 \u548c \u6cd5\u7ebf \u3002 \u5bf9\u4e8e \u76d2\u5b50 \u9762\u7247 \uff0c \u5149\u7ebf \u6295\u5c04 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5206\u6790 \u5b9e\u73b0 \uff0c \u8be5 \u5b9e\u73b0 \u4f1a \u627e\u5230 \u5149\u7ebf \u4e0e \u76d2\u5b50 \u57df \u9876\u9762 \u7684 \u4ea4\u70b9 \uff1b \u5bf9\u4e8e \u57fa\u4e8e \u7f51\u683c \u7684 \u9762\u7247 \uff0c \u5149\u7ebf \u6295\u5c04 \u5c06 \u63a8\u8fdf \u5230 \u5e95\u5c42 \u78b0\u649e \u7cfb\u7edf \u3002 \u5982\u679c \u6ca1\u6709 \u76f8\u4ea4 \u7684 \u9762\u7247 \uff0c \u8fd9\u4e9b \u51fd\u6570 \u5c06 \u8fd4\u56de 0 \u548c \u4e16\u754c \u7684 \u5782\u76f4 \u65b9\u5411 \u3002 \u4f4d\u7f6e \u76f8\u5173 \u7684 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u3002 \u521a\u6027 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u652f\u6301 \u5bf9\u8c61 \u7684 \u5b9a\u4e49 FrictionFunctor \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8fd9\u6837 \u7684 \u51fd\u5b50 \uff0c RigidTerrain : : GetCoefficientFriction \u5c06 \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u65b9\u6cd5 \u6765 \u8bc6\u522b \u6b63\u786e \u7684 \u8865\u4e01 \uff0c \u5e76 \u8fd4\u56de \u8be5 \u8865\u4e01 \u7684 \uff08 \u6052\u5b9a \uff09 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 \u51fd\u5b50 \uff0c RigidTerrain : : GetCoefficientFriction \u53ea\u4f1a \u8fd4\u56de \u5176\u503c \u3002 \u4f46\u662f \uff0c \u5904\u7406 \u4e0e \u5730\u5f62 \u7684 \u63a5\u89e6 \uff08 \u4f8b\u5982 \uff0c \u4f7f\u7528 \u521a\u6027 \u8f6e\u80ce \u6216 \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u65f6 \uff09 \u76f8\u5bf9 \u6602\u8d35 \uff1a \u6bcf\u6b21 \u8c03\u7528 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u7b97\u6cd5 \u65f6 \uff08 \u5373 \u6bcf\u4e2a \u6a21\u62df \u6b65\u9aa4 \u4e00\u6b21 \uff09 \uff0c \u90fd \u4f1a \u904d\u5386 Chrono \u7cfb\u7edf \u4e2d \u6240\u6709 \u63a5\u89e6 \u7684 \u5217\u8868 \u4ee5 \u62e6\u622a \u6240\u6709 \u6d89\u53ca \u521a\u6027 \u5730\u5f62 \u8865\u4e01 \u78b0\u649e \u6a21\u578b \u7684 \u63a5\u89e6 \uff1b \u5bf9\u4e8e \u8fd9\u4e9b \u63a5\u89e6 \uff0c \u590d\u5408 \u6750\u6599 \u590d\u5408\u6750\u6599 \u5c5e\u6027 \u4f1a \u88ab \u4fee\u6539 \u4ee5 \u8003\u8651 \u63a5\u89e6 \u89e6\u70b9 \u63a5\u89e6\u70b9 \u5904 \u7684 \u5730\u5f62 \u6469\u64e6 \u7cfb\u6570 \u6469\u64e6\u7cfb\u6570 \u3002 \u521a\u6027 \u5730\u5f62 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u7a0b \u6784\u5efa \uff0c \u4e00\u6b21 \u5b9a\u4e49 \u4e00\u4e2a \u8865\u4e01 \uff0c \u6216\u8005 \u5728 JSON \u6587\u4ef6 \u4e2d \u6307\u5b9a \uff0c \u5982\u4e0b \u6240\u793a \uff1a { \" Name \" : \" Rigid plane \" , \" Type \" : \" Terrain \" , \" Template \" : \" RigidTerrain \" , \" Patches \" : [ / / Patch 1 : box { \" Location \" : [ - 15 , 0 , 0 ] , \" Orientation \" : [ 1 , 0 , 0 , 0 ] , \" Geometry \" : { \" Dimensions \" : [ 60 , 20 , 2 ] } , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.01 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Visualization \" : { \" Color \" : [ 1.0 , 0.5 , 0.5 ] , \" Texture File \" : \" terrain / textures / tile4 . jpg \" , \" Texture Scaling \" : [ 60 , 20 ] } } , / / Patch 2 : box { \" Location \" : [ 20 , 0 , 0.1 ] , \" Orientation \" : [ 1 , 0 , 0 , 0 ] , \" Geometry \" : { \" Dimensions \" : [ 20 , 30 , 2 ] } , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.01 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Visualization \" : { \" Color \" : [ 1.0 , 0.5 , 0.5 ] } } , / / Patch 3 : height - map { \" Location \" : [ 0 , 42 , 0 ] , \" Orientation \" : [ 1 , 0 , 0 , 0 ] , \" Geometry \" : { \" Height Map Filename \" : \" terrain / height _ maps / bump64 . bmp \" , \" Size \" : [ 64 , 64 ] , \" Height Range \" : [ 0 , 3 ] } , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.01 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Visualization \" : { \" Color \" : [ 1.0 , 1.0 , 1.0 ] , \" Texture File \" : \" terrain / textures / grass . jpg \" , \" Texture Scaling \" : [ 64 , 64 ] } } , / / Patch 4 : Mesh { \" Location \" : [ 0 , - 42 , 0 ] , \" Orientation \" : [ 1 , 0 , 0 , 0 ] , \" Geometry \" : { \" Mesh Filename \" : \" terrain / meshes / bump . obj \" } , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.01 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Visualization \" : { \" Color \" : [ 0.5 , 0.5 , 0.8 ] , \" Texture File \" : \" terrain / textures / dirt . jpg \" , \" Texture Scaling \" : [ 200 , 200 ] } } ] }","title":"\u575a\u786c \u5730\u5f62"},{"location":"chrono/vehicle_terrain/#crg","text":"CRGTerrain \u662f \u6839\u636e OpenCRG \u9053\u8def \u89c4\u8303 \u6784\u5efa \u7684 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u3002 \u8981 \u4f7f\u7528 \u6b64 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \uff0c \u7528\u6237 \u5fc5\u987b \u5b89\u88c5 OpenCRG SDK \u5e76 \u5728 CMake \u914d\u7f6e \u671f\u95f4 \u542f\u7528 \u5176 \u4f7f\u7528 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 Chrono : : Vehicle \u5b89\u88c5 \u8bf4\u660e \uff09 \u3002 CRG \u5730\u5f62 \u4ece \u89c4\u8303 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u4e0b\u9762 \u5217\u51fa \u7684 \u6587\u4ef6 \uff09 \u521b\u5efa \u9053\u8def \u8f6e\u5ed3 \uff08 \u5177\u6709 \u76f8\u5173 \u5bbd\u5ea6 \u7684 3D \u8def\u5f84 \uff09 \uff0c \u5e76 \u5b9e\u73b0 \u51fd\u6570 CRGTerrain : : GetHeight \u548c CRGTerrain : : GetNormal \u4ee5 \u4f7f\u7528 \u6b64 \u89c4\u8303 \u3002 \u8bf7 \u6ce8\u610f \uff0c crg \u89c4\u8303 \u6587\u4ef6 \u53ef\u4ee5 \u662f ASCII \u6216 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 * Emacs major mode to be selected automagically : - * - CASCaDE - * - * $ Id : handmade _ curved _ minimalist . crg 21 2009 - 06 - 23 15 : 03 : 13Z jorauh $ $ CT CRG file example for road surface description ( width : 3m , length : 22m ) with curved reference line and grid of ( 0.25 m ... 1.0 m ) x 1.0 m . A minimalist file can have an empty $ CT , a minimalist $ ROAD _ CRG block , and no comments marked by asterisk \" * \" in column 1 or marked by \" ! \" in other columns . So this file is completely equivalent to its commented version in handmade _ curved . crg . Copyright 2005 - 2009 OpenCRG - Daimler AG - Jochen Rauh Licensed under the Apache License , Version 2.0 ( the \" License \" ) ; you may not use this file except in compliance with the License . You may obtain a copy of the License at http : / / www . apache . org / licenses / LICENSE - 2.0 Unless required by applicable law or agreed to in writing , software distributed under the License is distributed on an \" AS IS \" BASIS , WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied . See the License for the specific language governing permissions and limitations under the License . More Information on OpenCRG open file formats and tools can be found at http : / / www . opencrg . org $ $ ROAD _ CRG REFERENCE _ LINE _ INCREMENT = 1.0 $ $ KD _ Definition # : LRFI D : reference line phi , rad D : long section at v = - 1.500 , m D : long section at v = - 1.250 , m D : long section at v = - 1.000 , m D : long section at v = 0.000 , m D : long section at v = 1.000 , m D : long section at v = 1.250 , m D : long section at v = 1.500 , m $ * * unused * * 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 0.0000000 0.0110000 0.0000000 0.0000000 0.0111111 0.0111111 0.0111111 0.0000000 0.0000000 0.0220000 0.0000000 0.0111111 0.0111111 0.0111111 0.0111111 0.0111111 0.0000000 0.0330000 0.0000000 0.0000000 0.0111111 0.0111111 0.0111111 0.0000000 0.0000000 0.0440000 0.0111111 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 0.0111111 0.0550000 0.0111111 0.0111111 0.0000000 0.0000000 0.0000000 0.0111111 0.0222222 0.0660000 0.0111111 0.0111111 0.0111111 0.0000000 0.0111111 0.0222222 0.0333333 0.0770000 0.0111111 0.0111111 0.0000000 0.0000000 0.0000000 0.0111111 0.0222222 0.0880000 0.0111111 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 0.0111111 0.0990000 0.0000000 0.0000000 0.0111111 0.0222222 0.0111111 0.0000000 0.0000000 0.1100000 0.0000000 0.0111111 0.0222222 0.0222222 0.0222222 0.0111111 0.0000000 0.1100000 0.0000000 0.0000000 0.0111111 0.0222222 0.0111111 0.0000000 0.0000000 0.0990000 0.0111111 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 - 0.0111111 0.0880000 0.0111111 0.0111111 0.0000000 0.0000000 0.0000000 - 0.0111111 - 0.0222222 0.0770000 0.0111111 0.0111111 0.0111111 0.0000000 - 0.0111111 - 0.0222222 - 0.0333333 0.0660000 0.0111111 0.0111111 0.0000000 0.0000000 0.0000000 - 0.0111111 - 0.0222222 0.0550000 0.0111111 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 - 0.0111111 0.0440000 0.0000000 0.0000000 0.0111111 0.0222222 0.0111111 0.0000000 0.0000000 0.0330000 0.0000000 0.0111111 0.0222222 0.0333333 0.0222222 0.0111111 0.0000000 0.0220000 0.0000000 0.0000000 0.0111111 0.0222222 0.0111111 0.0000000 0.0000000 0.0110000 0.0000000 0.0000000 0.0000000 0.0111111 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 CRG \u5730\u5f62 \u53ef\u4ee5 \u89c6\u4e3a \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \uff08 \u4ee3\u8868 \u9053\u8def \u201c \u5e26 \u201d \uff09 \u6216 \u4e00\u7ec4 3D \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \uff08 \u4ee3\u8868 \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u548c \u9053\u8def \u4e24\u4fa7 \uff09 \u3002 CRGTerrain \u7684 \u5176\u4ed6 \u529f\u80fd \u5305\u62ec \uff1a \u80fd\u591f \u5bfc\u51fa \u9053\u8def \u7f51\u683c \uff08 \u4f5c\u4e3a \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \uff09 \u80fd\u591f \u5bfc\u51fa \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \uff08 \u4f5c\u4e3a \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \uff09 \u9053\u8def \u957f\u5ea6 \u548c \u5bbd\u5ea6 \u7684 \u62a5\u544a \u65b9\u6cd5 \u4e0b\u56fe \u5c55\u793a \u4e86 \u4f7f\u7528 \u4e09\u89d2 \u7f51\u683c \u6216 \u9053\u8def \u8fb9\u754c \u66f2\u7ebf \u7684 CRG \u9053\u8def \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7531\u4e8e CRG \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u76ee\u524d \u4e0d \u643a\u5e26 \u4efb\u4f55 \u78b0\u649e \u548c \u63a5\u89e6 \u4fe1\u606f \uff0c \u56e0\u6b64 \u5b83 \u53ea\u80fd \u4e0e \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u4e00\u8d77 \u4f7f\u7528 \u3002","title":"CRG \u5730\u5f62"},{"location":"chrono/vehicle_terrain/#scm","text":"\u5728 SCMTerrain \u4e2d \uff0c \u5730\u5f62 \u7531 \u9690\u5f0f \u89c4\u5219 \u5361\u5c14 \u7b1b\u5361\u5c14 \u7f51\u683c \u8868\u793a \uff0c \u5176 \u53d8\u5f62 \u901a\u8fc7 \u5176 \u8282\u70b9 \u7684 \u5782\u76f4 \u504f\u8f6c \u5b9e\u73b0 \u3002 \u8be5 \u571f\u58e4 \u6a21\u578b \u501f\u9274 \u4e86 Chrono \u4e2d \u7684 \u901a\u7528 \u78b0\u649e \u5f15\u64ce \uff0c \u5176 \u8f7b\u91cf \u91cf\u7ea7 \u8f7b\u91cf\u7ea7 \u516c\u5f0f \u5141\u8bb8 \u8fd1\u4e4e \u5b9e\u65f6 \u5730 \u8ba1\u7b97 \u8f66\u8f86 \u4e0e \u5730\u5f62 \u7684 \u63a5\u89e6 \u89e6\u529b \u63a5\u89e6\u529b \u3002 \u4e3a\u4e86 \u89e3\u51b3 \u5185\u5b58 \u548c \u8ba1\u7b97 \u6548\u7387 \u95ee\u9898 \uff0c \u4ece\u672a \u660e\u786e \u521b\u5efa \u7f51\u683c \u3002 \u76f8\u53cd \uff0c \u53ea \u5728 \u54c8 \u5e0c\u56fe \u4e2d \u7ef4\u62a4 \u5df2 \u53d8\u5f62 \u7684 \u8282\u70b9 \u3002 \u6b64\u5916 \uff0c \u78b0\u649e \u7cfb\u7edf \u4e2d \u7684 \u5149\u7ebf \u6295\u5c04 \uff08 SCM \u8ba1\u7b97 \u4e2d \u6700 \u6602\u8d35 \u7684 \u64cd\u4f5c \uff09 \u662f \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u7684 \u3002 \u4e3a\u4e86 \u9ad8\u6548 \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u53d8\u5f62 \u7684 \u5730\u5f62 \uff0c Chrono SCM \u7cfb\u7edf \u5b50\u7cfb\u7edf \u63d0\u4f9b \u4e86 \u9010\u6b65 \u66f4\u65b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7f51\u683c \u7684 \u65b9\u6cd5 \uff0c \u5e76\u4e14 \u5728 \u4f7f\u7528 \u5916\u90e8 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7cfb\u7edf \u65f6 \u62a5\u544a \u4e0a \u4e00\u4e2a \u65f6\u95f4 \u6b65\u5185 \u53d8\u5f62 \u7684 \u8282\u70b9 \u5b50\u96c6 \u3002 \u4e0b\u56fe \u6240\u793a \uff0c \u8f6e\u80ce \u5728 \u53ef \u53d8\u5f62 \u571f\u58e4 \u4e2d \u7559\u4e0b \u8f66\u8f99 \uff0c \u8bf4\u660e \u4e86 SCM \u7684 Chrono \u7248\u672c \u7684 \u7f51\u683c \u7ed3\u6784 \u3002 SCM \u57fa\u4e8e \u534a \u7ecf\u9a8c \u6a21\u578b \uff0c \u53c2\u6570 \u5f88\u5c11 \uff0c \u56e0\u6b64 \u5f88 \u5bb9\u6613 \u6839\u636e \u5b9e\u9a8c \u7ed3\u679c \u8fdb\u884c \u6821\u51c6 \u3002 \u5b83 \u53ef\u4ee5 \u88ab \u89c6\u4e3a Bekker - Wong \u6a21\u578b \u7684 \u63a8\u5e7f \uff0c \u9002\u7528 \u4e8e \u4efb\u610f \u4e09\u7ef4 \u5f62\u72b6 \u7684 \u8f66\u8f6e \uff08 \u6216 \u5c65\u5e26 \u677f \uff09 \u3002 \u5bf9\u4e8e \u5728 \u53ef \u53d8\u5f62 \u571f\u58e4 \u4e0a \u79fb\u52a8 \u7684 \u8f66\u8f6e \uff0c Bekker \u516c\u5f0f \u63d0\u4f9b \u4e86 \u538b\u529b \u4e0e \u571f\u58e4 \u5782\u76f4 \u53d8\u5f62 \u4e4b\u95f4 \u7684 \u5173\u7cfb \uff1a \u8fd9\u91cc \u03c3 \u662f \u63a5\u89e6 \u63a5\u89e6\u9762 \u538b\u529b \uff0c y \u662f \u8f66\u8f6e \u4e0b\u6c89 \uff0c $ k _ c $ \u662f \u8868\u793a \u571f\u58e4 \u7c98\u7ed3 \u6548\u5e94 \u7684 \u7ecf\u9a8c \u7cfb\u6570 \uff0c k \u03c6 \u662f \u8868\u793a \u571f\u58e4 \u521a\u5ea6 \u7684 \u7ecf\u9a8c \u7cfb\u6570 \uff0c n \u662f \u8868\u8fbe \u786c\u5316 \u6548\u5e94 \u7684 \u6307\u6570 \uff0c \u5b83 \u968f\u7740 \u571f\u58e4 \u7684 \u538b\u5b9e \u800c \u7ebf\u6027 \u975e\u7ebf\u6027 \u5730 \u589e\u52a0 \u3002 \u6700\u540e \uff0c b \u662f \u77e9\u5f62 \u63a5\u89e6 \u8db3\u8ff9 \u8f83 \u77ed\u8fb9 \u7684 \u957f\u5ea6 \uff08 \u56e0\u4e3a \u539f\u59cb Bekker \u7406\u8bba \u5047\u8bbe \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u8f6e\u80ce \u5728 \u5e73\u5766 \u5730\u5f62 \u4e0a \u6eda\u52a8 \uff09 \u3002 \u5bf9\u4e8e \u901a\u7528 \u63a5\u89e6 \u8db3\u8ff9 \uff0c \u957f\u5ea6 b \u4e0d\u80fd \u50cf \u539f\u59cb Bekker \u6a21\u578b \u90a3\u6837 \u89e3\u91ca \uff1b \u76f8\u53cd \uff0c \u6211\u4eec \u901a\u8fc7 \u9996\u5148 \u83b7\u53d6 \u6240\u6709 \u8fde\u63a5 \u7684 \u63a5\u89e6 \u63a5\u89e6\u9762 \uff08 \u4f7f\u7528 \u6cdb\u6d2a \u7b97\u6cd5 \uff09 \u5e76 \u4f7f\u7528 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u6765 \u4f30\u8ba1 \u8fd9\u4e2a \u957f\u5ea6 b = 2A / L \u8fd9\u91cc A \u662f \u63a5\u89e6 \u9762\u79ef \u7684 \u9762\u79ef \uff0c L \u662f \u5b83 \u7684 \u5468\u957f \u3002 Chrono SCM \u5b9e\u73b0 \u7684 \u5176\u4ed6 \u4e00\u4e9b \u529f\u80fd \u5305\u62ec \uff1a \u521d\u59cb \u672a \u53d8\u5f62 \u7f51\u683c \u53ef\u4ee5 \u521b\u5efa \u4e3a \u5e38\u89c4 \u5e73\u94fa \u7f51\u683c \uff08 \u586b\u5145 \u5e73\u9762 \u77e9\u5f62 \uff09 \u4ece \u9ad8\u5ea6 \u56fe \uff08 \u4ee5 \u7070\u5ea6 BMP \u56fe\u50cf \u63d0\u4f9b \uff09 \u4ee5 \u7f16\u7a0b \u65b9\u5f0f \u652f\u6301 \u4efb\u610f \u65b9\u5411 \u7684 \u5730\u5f62 \u53c2\u8003 \u5e73\u9762 \uff1b \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5730\u5f62 \u88ab \u5b9a\u4e49 \u4e3a \uff08 x , y \uff09 \u5e73\u9762 \u662f ISO \u6846\u67b6 \u652f\u6301 \u79fb\u52a8 \u9762\u7247 \u65b9\u6cd5 \uff0c \u5176\u4e2d \u5149\u7ebf \u6295\u5c04 \uff08 \u6210\u672c \u6700\u9ad8 \u7684 \u64cd\u4f5c \uff09 \u88ab \u9650\u5236 \u5728 \u6307\u5b9a \u7684 \u8303\u56f4 \u5185 \u2014 \u2014 \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u79fb\u52a8 \u7684 \u77e9\u5f62 \u9762\u7247 \u6216 \u8fb9\u754c \u6846 \u7684 \u6295\u5f71 \u652f\u6301 \u6307\u5b9a \u4e0e \u4f4d\u7f6e \u76f8\u5173 \u7684 \u571f\u58e4 \u53c2\u6570 \uff1b \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u63d0\u4f9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u56de\u8c03 \u7c7b\u6765 \u5b9e\u73b0 \uff0c \u8be5 \u56de\u8c03 \u7c7b \u5b9e\u73b0 \u4e00\u79cd \u8fd4\u56de \u7ed9\u5b9a \u4f4d\u7f6e \u7684 \u6240\u6709 \u571f\u58e4 \u53c2\u6570 \u7684 \u65b9\u6cd5 \uff08 x , y \uff09 \u5730\u5f62 \u53c2\u8003 \u5e73\u9762 \u4e2d \u6307\u5b9a \u7684 \u70b9 \u3002 \u53c2\u89c1 SCMTerrain : : SoilParametersCallback \u7531\u4e8e \u4e0e \u8fd9\u79cd \u5730\u5f62 \u7c7b\u578b \u7684 \u4ea4\u4e92 \u662f \u901a\u8fc7 \u5e95\u5c42 \u7684 Chrono \u63a5\u89e6 \u7cfb\u7edf \u5b8c\u6210 \u7684 \uff0c \u56e0\u6b64 \u5b83 \u53ef\u4ee5 \u4e0e \u521a\u6027 \u6216 FE A\u8f6e \u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7ed3\u5408 \u4f7f\u7528 \u3002","title":"\u53ef \u53d8\u5f62 SCM \uff08 \u571f\u58e4 \u63a5\u89e6 \u6a21\u578b \uff09"},{"location":"chrono/vehicle_terrain/#_4","text":"GranularTerrain \u5b9e\u73b0 \u4e86 \u77e9\u5f62 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u6750\u6599 \u5757 \uff0c \u5e76 \u5229\u7528 \u4e86 Chrono \u5bf9 \u6240\u8c13 \u7684 \u79bb\u6563 \u5143\u6cd5 ( DEM ) \u6a21\u62df \u7684 \u5e7f\u6cdb \u652f\u6301 \u5e7f\u6cdb\u652f\u6301 \u3002 \u76ee\u524d \uff0c \u6b64 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u5355 \u5206\u6563 \u7403\u5f62 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u6750\u6599 \u3002 \u7531\u4e8e \u6a21\u62df \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u9700\u8981 \u5927\u91cf \u8ba1\u7b97 \uff0c Chrono : : Vehicle \u4e2d \u7684 GranularTerrain \u5bf9\u8c61 \u652f\u6301 \u201c \u79fb\u52a8 \u5757 \u201d \u65b9\u6cd5 \uff0c \u5176\u4e2d \u6a21\u62df \u53ef\u4ee5 \u9650\u5236 \u5728 \u9897\u7c92 \u7c92\u72b6 \u9897\u7c92\u72b6 \u6750\u6599 \u7bb1\u4e2d \uff0c \u8be5 \u6750\u6599 \u7bb1\u4f1a \u6839\u636e \u6307\u5b9a \u7269\u4f53 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \u5e95\u76d8 \uff09 \u7684 \u4f4d\u7f6e \u4e0d\u65ad \u91cd\u65b0 \u5b9a\u4f4d \u3002 \u76ee\u524d \uff0c \u79fb\u52a8 \u5757 \u53ea\u80fd \u5728 X \uff08 \u524d\u8fdb \uff09 \u65b9\u5411 \u3002 \u4e0b\u9762 \u662f \u4f7f\u7528 \u79fb\u52a8 \u9762\u7247 \u7279\u5f81 \u5728 GranularTerrain \u4e0a \u8fdb\u884c \u8f66\u8f86 \u52a0\u901f \u6d4b\u8bd5 \u7684 \u793a\u4f8b \u3002 \u6b64 \u6a21\u62df \u4f7f\u7528 \u8d85\u8fc7 700 , 000 \u4e2a \u7c92\u5b50 \u548c Chrono : : Multicore \u6a21\u5757 \u8fdb\u884c \u591a\u6838 \u5e76\u884c \u6a21\u62df \u3002 GranularTerrain \u7684 \u5176\u4ed6 \u529f\u80fd \u5305\u62ec \uff1a \u5206\u5c42 \u751f\u6210 \u521d\u59cb \u7c92\u5b50 \u4f4d\u7f6e \uff0c \u7c92\u5b50 \u4f4d\u7f6e \u5728 \u6c34\u5e73 \u9762\u4e0a \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \uff0c \u4e14 \u4fdd\u8bc1 \u4e0d \u5c0f\u4e8e \u7c92\u5b50 \u534a\u5f84 \u7684 \u4e24\u500d \u5305\u542b \u56fa\u5b9a \u5728 \u8fb9\u754c \u7bb1\u4e0a \u7684 \u9897\u7c92 \uff08 \u4ee5 \u6291\u5236 \u6574\u4e2a \u9897\u7c92 \u6750\u6599 \u5e8a \u7684 \u6ed1\u52a8 \uff09 \uff1b \u7531\u4e8e \u76ee\u524d \u7684 \u9650\u5236 \uff0c \u6b64 \u529f\u80fd \u4e0d\u5e94 \u4e0e \u79fb\u52a8 \u8865\u4e01 \u9009\u9879 \u7ed3\u5408 \u4f7f\u7528 \u7bb1 \u8fb9\u754c \u7684 \u5206\u6790 \u5b9a\u4e49 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u673a\u5236 \u62a5\u544a \u5730\u5f62 \u9ad8\u5ea6 \uff08 \u5b9a\u4e49 \u4e3a \u6700\u5927 \u662f \u6240\u6709 \u7c92\u5b50 \u4f4d\u7f6e \u7684 \u503c \uff09 \u7531\u4e8e \u4e0e \u8fd9\u79cd \u5730\u5f62 \u7c7b\u578b \u7684 \u4ea4\u4e92 \u662f \u901a\u8fc7 \u5e95\u5c42 \u7684 Chrono \u63a5\u89e6 \u7cfb\u7edf \u5b8c\u6210 \u7684 \uff0c \u56e0\u6b64 \u5b83 \u53ef\u4ee5 \u4e0e \u521a\u6027 \u6216 FE A\u8f6e \u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7ed3\u5408 \u4f7f\u7528 \u3002","title":"\u9897\u7c92\u72b6 \u5730\u5f62"},{"location":"chrono/vehicle_terrain/#feaancf","text":"FEATerrain \u57fa\u4e8e ChElementHexaANCF _ 3813 _ 9 \u7c7b\u578b \u7684 \u4e13\u7528 FEA \u7816\u5757 \u5143\u7d20 \u63d0\u4f9b \u53ef \u53d8\u5f62 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u3002 \u8be5 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u5141\u8bb8 \uff1a \u5c06 \u76d2\u5b50 \u57df \u79bb\u6563 \u5316\u4e3a \u7528\u6237 \u6307\u5b9a \u7684 \u5143\u7d20 \u6570\u91cf \u6307\u5b9a \u6750\u6599 \u7279\u6027 \uff08 \u5bc6\u5ea6 \u3001 \u5f39\u6027 \u6a21\u91cf \u5f39\u6027\u6a21\u91cf \u3001 \u6cca\u677e\u6bd4 \u3001 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u3001 \u786c\u5316 \u659c\u7387 \u3001 \u81a8\u80c0 \u89d2 \u548c \u6469\u64e6 \u6469\u64e6\u89d2 \uff09 \u6dfb\u52a0 Chrono FEA \u7f51\u683c \u53ef\u89c6 \u53ef\u89c6\u5316 \u8d44\u4ea7 \u7531\u4e8e \u4e0e \u8fd9\u79cd \u5730\u5f62 \u7c7b\u578b \u7684 \u4ea4\u4e92 \u662f \u901a\u8fc7 \u5e95\u5c42 \u7684 Chrono \u63a5\u89e6 \u7cfb\u7edf \u5b8c\u6210 \u7684 \uff0c \u56e0\u6b64 \u5b83 \u53ef\u4ee5 \u4e0e \u521a\u6027 \u6216 FEA \u8f6e\u80ce \u6a21\u578b \u4ee5\u53ca \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7ed3\u5408 \u4f7f\u7528 \u3002","title":"\u53ef \u53d8\u5f62 FEA \uff08 ANCF \u5b9e\u4f53 \u5143\u7d20 \uff09"},{"location":"chrono/vehicle_visualization/","text":"\u53ef\u89c6 \u53ef\u89c6\u5316 \u57fa\u4e8e Irrlicht \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57fa\u4e8e OpenGL \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f7f\u7528 POV - Ray \u8fdb\u884c \u79bb\u7ebf \u6e32\u67d3 \u57fa\u4e8e Irrlicht \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57fa\u4e8e \u8f66\u8f86 Irrlicht \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5206\u522b \u4f7f\u7528 \u9488\u5bf9 \u8f6e\u5f0f \u8f66\u8f86 \u548c \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7684 \u5b9a\u5236 Irrlicht \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f ChWheeledVehicleIrrApp \u548c ChTrackedVehicleIrrApp \u3002 \u8fd9\u4e9b \u662f \u57fa\u672c ChIrrApp \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u6269\u5c55 \uff0c \u5141\u8bb8 \uff1a \u4f7f\u7528 \u4ee5 \u8f66\u8f86 \u4e3a \u4e2d\u5fc3 \u7684 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \uff08 \u89c6\u70b9 \uff09 \u663e\u793a \u5176\u4ed6 \uff08 \u8f66\u8f86 \u7279\u5b9a \u7684 \uff09 \u7edf\u8ba1 \u8ba1\u6570 \u6570\u636e \u7edf\u8ba1\u6570\u636e \uff0c \u4f8b\u5982 \u8f66\u901f \u3001 \u5f53\u524d \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \u3001 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u626d\u77e9 \u3001 \u8f66\u8f6e \u548c \u94fe\u8f6e \u626d\u77e9 \u7b49 \u3002 \u4ee5\u4e0b \u56fe\u50cf \u662f \u6765\u81ea Chrono : : Vehicle \u6a21\u62df \u7684 \u5feb\u7167 \u3002 \u57fa\u4e8e OpenGL \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 Chrono : : Vehicle \u6a21\u62df \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Chrono : : OpenGL \u6a21\u5757 \u5728 \u8fd0\u884c \u65f6 \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u66f4 \u5feb\u6377 \u3001 \u8ba1\u7b97 \u6548\u7387 \u66f4 \u9ad8 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \uff0c \u5c24\u5176 \u662f \u5bf9\u4e8e \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u6a21\u62df \uff08 \u4f8b\u5982 \u6d89\u53ca \u8f66\u8f86 \u4e0e \u9897\u7c92 \u5730\u5f62 \u4ea4\u4e92 \u7684 \u6a21\u62df \uff09 \u3002 \u4ee5\u4e0b \u56fe\u50cf \u662f \u6765\u81ea Chrono : : Vehicle \u6a21\u62df \u7684 \u5feb\u7167 \u3002 \u4f7f\u7528 POV - Ray \u8fdb\u884c \u79bb\u7ebf \u6e32\u67d3 \u79bb\u7ebf \u6e32\u67d3 \u9700\u8981 \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u6536\u96c6 \u8981 \u6e32\u67d3 \u7684 \u6bcf \u4e00\u5e27 \u7684 \u7cfb\u7edf \u6570\u636e \u53ef\u9009 \u53ef\u9009\u5730 \uff0c \u4ee5 \u7279\u5b9a \u4e8e \u6240 \u9700 \u6e32\u67d3 \u5f15\u64ce \u7684 \u683c\u5f0f \u51c6\u5907 \u7f51\u683c \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u540e\u671f \u5904\u7406 \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u4ee5 \u6e32\u67d3 \u6bcf \u4e00\u5e27 \u7684 \u573a\u666f \u53ef\u9009 \u53ef\u9009\u5730 \uff0c \u5c06 \u591a \u5e27 \u56fe\u50cf \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u52a8\u753b Chrono : : Vehicle \u4e3a \u8be5 \u5de5\u4f5c \u6d41 \u6a21\u578b \u548c POV - Ray \u5149\u7ebf \u8ffd\u8e2a \u7a0b\u5e8f \u63d0\u4f9b \u6709\u9650 \u7684 \u652f\u6301 \u3002 \u51c6\u5907 \u8f93\u51fa \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u5728 \u6bcf\u4e2a \u9700\u8981 \u540e\u671f \u5904\u7406 \u7684 \u6a21\u62df \u5e27 \u4e0a \uff0c \u8c03\u7528 \u51fd\u6570 \u8c03\u7528\u51fd\u6570 WriteVisualizationAssets \u3002 \u6b64 \u51fd\u6570 \u5c06 \u8f93\u51fa \u4e00\u4e2a \u5305\u542b \u7528\u6237 \u63d0\u4f9b \u7684 \u540d\u79f0 \u7684 \u9017\u53f7 \u5206\u9694 \u503c \uff08 CSV \uff09 \u6587\u4ef6 \u3002 \u8f93\u51fa \u6587\u4ef6 \u5305\u542b \u6709\u5173 Chrono \u7cfb\u7edf \u4e2d \u6240\u6709 \u7269\u4f53 \u7684 \u4fe1\u606f \uff08 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff09 \u3001 \u6240\u6709 \u76f8\u5173 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8d44\u4ea7 \uff08 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u3001 \u7c7b\u578b \u548c \u8d44\u4ea7 \u7279\u5b9a \u53c2\u6570 \uff09 \u4ee5\u53ca \u9009\u5b9a \u7684 \u5173\u8282 \u7c7b\u578b \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7f51\u683c \u53ef\u89c6 \u53ef\u89c6\u5316 \u8d44\u4ea7 \u901a\u8fc7 \u5176 \u5404\u81ea \u7684 \u7f51\u683c \u540d\u79f0 \u8fdb\u884c \u8bc6\u522b \u3002 \u51c6\u5907 \u7f51\u683c \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u8981 \u4f7f\u7528 POV - Ray \u8fdb\u884c \u6e32\u67d3 \uff0c \u5fc5\u987b \u5c06 \u4e0e \u7f51\u683c \u53ef\u89c6 \u53ef\u89c6\u5316 \u8d44\u4ea7 \u76f8\u5bf9 \u5e94 \u7684 Wavefront OBJ \u6587\u4ef6 \u8f6c\u6362 \u4e3a POV - Ray \u8f93\u5165 \u6587\u4ef6 \u4e2d \u7684 \u5b8f \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u5b8c\u6210 \u4f7f\u7528 \u51fd\u6570 WriteMeshPovray \u4f7f\u7528 PoseRay \u7b49 \u4e13\u7528 \u7528\u5de5 \u5de5\u5177 \u4e13\u7528\u5de5\u5177 \u5982\u679c \u4f7f\u7528 \u4e0b\u9762 \u63cf\u8ff0 \u7684 \u6e32\u67d3 \u811a\u672c \uff0c \u8fd9\u4e9b \u7f51\u683c \u5b8f POV - Ray \u8f93\u5165 \u6587\u4ef6 \u7684 \u540d\u79f0 \u5e94 \u4e0e \u76f8\u5e94 \u7684 \u7f51\u683c \u540d\u79f0 \u76f8\u540c \u3002 \u6b64\u5916 \uff0c \u8fd9\u6837 \u7684 \u7f51\u683c POV - Ray \u8f93\u5165 \u6587\u4ef6 \u5fc5\u987b \u5b9a\u4e49 \u5355\u4e2a \u5b8f \uff08 \u540d\u79f0 \u4e0e \u7f51\u683c \u540d\u79f0 \u76f8\u540c \uff09 \uff1b \u56e0\u6b64 \uff0c \u9700\u8981 \u624b\u52a8 \u7f16\u8f91 PoseRay \u751f\u6210 \u7684 \u6587\u4ef6 \uff08 \u4f8b\u5982 \uff0c \u53c2\u89c1 Chrono \u53d1\u884c \u53d1\u884c\u7248 \u63d0\u4f9b \u7684 \u793a\u4f8b data / vehicle / hmmwv / POV - Ray / hmmwv _ chassis . inp \uff09 \u3002 * * \u4f7f\u7528 POV - Ray \u5bf9 \u6587\u4ef6 \u8fdb\u884c \u540e\u671f \u5904\u7406 * * Chrono \u53d1\u884c \u53d1\u884c\u7248 \u5305\u542b \uff08 \u5728 \u76ee\u5f55 \u4e2d src / demos / vehicle / \uff09 \u4e00\u4e2a \u793a\u4f8b POV - Ray \u811a\u672c \uff08 renderZ . pov \uff09 \uff0c \u53ef \u7528\u4e8e \uff08 \u6279\u91cf \uff09 \u5904\u7406 WriteVisualizationAssets \u751f\u6210 \u7684 \u683c\u5f0f \u7684 \u8f93\u51fa \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u3002 \u6b64 \u811a\u672c \u5047\u5b9a \u6240\u6709 \u6570\u636e \u5747 \u5728 \u53f3\u624b \u6846\u67b6 \u4e2d \u63d0\u4f9b \uff0c Z \u5411\u4e0a \uff08 ISO \u53c2\u8003 \u6846\u67b6 \uff09 \uff0c \u5e76 \u6267\u884c \u6240\u6709 \u5fc5\u8981 \u7684 \u8f6c\u6362 \u4e3a POV - Ray \u7684 Y \u5411\u4e0a \u5de6\u624b \u6846\u67b6 \u3002 \u8be5 \u811a\u672c \u63d0\u4f9b \u4ee5\u4e0b \u7528\u6237 \u63a7\u4ef6 \uff1a \u6e32\u67d3 \u5355\u5e27 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff08 \u5904\u7406 \u6279\u5904\u7406 \uff09 \u6253\u5f00 / \u5173\u95ed \u8eab\u4f53 \u53c2\u8003 \u6846\u67b6 \u7684 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u5168\u5c40 \u53c2\u8003 \u6846\u67b6 \u7684 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u8d44\u4ea7 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u56fa\u5b9a \u5728 \u5730\u9762 \u4e0a \u7684 \u8d44\u4ea7 \u7684 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u652f\u6301 \u5173\u8282 \u7684 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u5f39\u7c27 \u548c \u51cf\u9707 \u51cf\u9707\u5668 \u7684 \u6e32\u67d3 \u6307\u5b9a \u8868\u793a \u5173\u8282 \u7684 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u5c3a\u5bf8 \u76f8\u673a \u4f4d\u7f6e \u548c \u89c2\u5bdf \u89c2\u5bdf\u70b9 \u542f\u7528 / \u7981\u7528 \u9634\u5f71 \u53ef \u9009 \u6e32\u67d3 \u73af\u5883 \uff08 \u5730\u9762 \u548c \u5929\u7a7a \uff09 \u8bf7 \u6ce8\u610f \uff0c \u8be5 renderZ . pov \u811a\u672c \u4ec5 \u4f5c\u4e3a \u8d77\u70b9 \u63d0\u4f9b \u3002 \u53ef\u4ee5 \u4f7f\u7528 POV - Ray \u751f\u6210 \u66f4 \u590d\u6742 \u3001 \u66f4 \u903c\u771f \u7684 \u56fe\u50cf \uff0c \u4f7f\u7528 \u66f4 \u590d\u6742 \u7684 \u6750\u6599 \u548c \u73af\u5883 \u3002 \u6700\u540e \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u7c7b\u4f3c \u7684 \u5de5\u4f5c \u6d41\u7a0b \u6765 \u6e32\u67d3 \u9664 POV - Ray \u4e4b\u5916 \u7684 \u5176\u4ed6 \u5f15\u64ce \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u7684 \u56fe\u50cf \u662f \u4f7f\u7528 WriteVisualizationAssets \u751f\u6210 \u7684 \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u4f46 \u4f7f\u7528 Mitsuba \u5f15\u64ce \u751f\u6210 \u7684 \u3002","title":"Vehicle visualization"},{"location":"chrono/vehicle_visualization/#_1","text":"\u57fa\u4e8e Irrlicht \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57fa\u4e8e OpenGL \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f7f\u7528 POV - Ray \u8fdb\u884c \u79bb\u7ebf \u6e32\u67d3","title":"\u53ef\u89c6\u5316"},{"location":"chrono/vehicle_visualization/#irrlicht","text":"\u57fa\u4e8e \u8f66\u8f86 Irrlicht \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5206\u522b \u4f7f\u7528 \u9488\u5bf9 \u8f6e\u5f0f \u8f66\u8f86 \u548c \u5c65\u5e26 \u5e26\u5f0f \u5c65\u5e26\u5f0f \u8f66\u8f86 \u7684 \u5b9a\u5236 Irrlicht \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f ChWheeledVehicleIrrApp \u548c ChTrackedVehicleIrrApp \u3002 \u8fd9\u4e9b \u662f \u57fa\u672c ChIrrApp \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u6269\u5c55 \uff0c \u5141\u8bb8 \uff1a \u4f7f\u7528 \u4ee5 \u8f66\u8f86 \u4e3a \u4e2d\u5fc3 \u7684 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \uff08 \u89c6\u70b9 \uff09 \u663e\u793a \u5176\u4ed6 \uff08 \u8f66\u8f86 \u7279\u5b9a \u7684 \uff09 \u7edf\u8ba1 \u8ba1\u6570 \u6570\u636e \u7edf\u8ba1\u6570\u636e \uff0c \u4f8b\u5982 \u8f66\u901f \u3001 \u5f53\u524d \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f93\u5165 \u3001 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u626d\u77e9 \u3001 \u8f66\u8f6e \u548c \u94fe\u8f6e \u626d\u77e9 \u7b49 \u3002 \u4ee5\u4e0b \u56fe\u50cf \u662f \u6765\u81ea Chrono : : Vehicle \u6a21\u62df \u7684 \u5feb\u7167 \u3002","title":"\u57fa\u4e8e Irrlicht \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6\u5316"},{"location":"chrono/vehicle_visualization/#opengl","text":"Chrono : : Vehicle \u6a21\u62df \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Chrono : : OpenGL \u6a21\u5757 \u5728 \u8fd0\u884c \u65f6 \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u66f4 \u5feb\u6377 \u3001 \u8ba1\u7b97 \u6548\u7387 \u66f4 \u9ad8 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \uff0c \u5c24\u5176 \u662f \u5bf9\u4e8e \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u6a21\u62df \uff08 \u4f8b\u5982 \u6d89\u53ca \u8f66\u8f86 \u4e0e \u9897\u7c92 \u5730\u5f62 \u4ea4\u4e92 \u7684 \u6a21\u62df \uff09 \u3002 \u4ee5\u4e0b \u56fe\u50cf \u662f \u6765\u81ea Chrono : : Vehicle \u6a21\u62df \u7684 \u5feb\u7167 \u3002","title":"\u57fa\u4e8e OpenGL \u7684 \u8fd0\u884c \u65f6 \u53ef\u89c6\u5316"},{"location":"chrono/vehicle_visualization/#pov-ray","text":"\u79bb\u7ebf \u6e32\u67d3 \u9700\u8981 \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u6536\u96c6 \u8981 \u6e32\u67d3 \u7684 \u6bcf \u4e00\u5e27 \u7684 \u7cfb\u7edf \u6570\u636e \u53ef\u9009 \u53ef\u9009\u5730 \uff0c \u4ee5 \u7279\u5b9a \u4e8e \u6240 \u9700 \u6e32\u67d3 \u5f15\u64ce \u7684 \u683c\u5f0f \u51c6\u5907 \u7f51\u683c \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u540e\u671f \u5904\u7406 \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u4ee5 \u6e32\u67d3 \u6bcf \u4e00\u5e27 \u7684 \u573a\u666f \u53ef\u9009 \u53ef\u9009\u5730 \uff0c \u5c06 \u591a \u5e27 \u56fe\u50cf \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u52a8\u753b Chrono : : Vehicle \u4e3a \u8be5 \u5de5\u4f5c \u6d41 \u6a21\u578b \u548c POV - Ray \u5149\u7ebf \u8ffd\u8e2a \u7a0b\u5e8f \u63d0\u4f9b \u6709\u9650 \u7684 \u652f\u6301 \u3002 \u51c6\u5907 \u8f93\u51fa \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u5728 \u6bcf\u4e2a \u9700\u8981 \u540e\u671f \u5904\u7406 \u7684 \u6a21\u62df \u5e27 \u4e0a \uff0c \u8c03\u7528 \u51fd\u6570 \u8c03\u7528\u51fd\u6570 WriteVisualizationAssets \u3002 \u6b64 \u51fd\u6570 \u5c06 \u8f93\u51fa \u4e00\u4e2a \u5305\u542b \u7528\u6237 \u63d0\u4f9b \u7684 \u540d\u79f0 \u7684 \u9017\u53f7 \u5206\u9694 \u503c \uff08 CSV \uff09 \u6587\u4ef6 \u3002 \u8f93\u51fa \u6587\u4ef6 \u5305\u542b \u6709\u5173 Chrono \u7cfb\u7edf \u4e2d \u6240\u6709 \u7269\u4f53 \u7684 \u4fe1\u606f \uff08 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff09 \u3001 \u6240\u6709 \u76f8\u5173 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8d44\u4ea7 \uff08 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u3001 \u7c7b\u578b \u548c \u8d44\u4ea7 \u7279\u5b9a \u53c2\u6570 \uff09 \u4ee5\u53ca \u9009\u5b9a \u7684 \u5173\u8282 \u7c7b\u578b \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7f51\u683c \u53ef\u89c6 \u53ef\u89c6\u5316 \u8d44\u4ea7 \u901a\u8fc7 \u5176 \u5404\u81ea \u7684 \u7f51\u683c \u540d\u79f0 \u8fdb\u884c \u8bc6\u522b \u3002 \u51c6\u5907 \u7f51\u683c \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u8981 \u4f7f\u7528 POV - Ray \u8fdb\u884c \u6e32\u67d3 \uff0c \u5fc5\u987b \u5c06 \u4e0e \u7f51\u683c \u53ef\u89c6 \u53ef\u89c6\u5316 \u8d44\u4ea7 \u76f8\u5bf9 \u5e94 \u7684 Wavefront OBJ \u6587\u4ef6 \u8f6c\u6362 \u4e3a POV - Ray \u8f93\u5165 \u6587\u4ef6 \u4e2d \u7684 \u5b8f \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u5b8c\u6210 \u4f7f\u7528 \u51fd\u6570 WriteMeshPovray \u4f7f\u7528 PoseRay \u7b49 \u4e13\u7528 \u7528\u5de5 \u5de5\u5177 \u4e13\u7528\u5de5\u5177 \u5982\u679c \u4f7f\u7528 \u4e0b\u9762 \u63cf\u8ff0 \u7684 \u6e32\u67d3 \u811a\u672c \uff0c \u8fd9\u4e9b \u7f51\u683c \u5b8f POV - Ray \u8f93\u5165 \u6587\u4ef6 \u7684 \u540d\u79f0 \u5e94 \u4e0e \u76f8\u5e94 \u7684 \u7f51\u683c \u540d\u79f0 \u76f8\u540c \u3002 \u6b64\u5916 \uff0c \u8fd9\u6837 \u7684 \u7f51\u683c POV - Ray \u8f93\u5165 \u6587\u4ef6 \u5fc5\u987b \u5b9a\u4e49 \u5355\u4e2a \u5b8f \uff08 \u540d\u79f0 \u4e0e \u7f51\u683c \u540d\u79f0 \u76f8\u540c \uff09 \uff1b \u56e0\u6b64 \uff0c \u9700\u8981 \u624b\u52a8 \u7f16\u8f91 PoseRay \u751f\u6210 \u7684 \u6587\u4ef6 \uff08 \u4f8b\u5982 \uff0c \u53c2\u89c1 Chrono \u53d1\u884c \u53d1\u884c\u7248 \u63d0\u4f9b \u7684 \u793a\u4f8b data / vehicle / hmmwv / POV - Ray / hmmwv _ chassis . inp \uff09 \u3002 * * \u4f7f\u7528 POV - Ray \u5bf9 \u6587\u4ef6 \u8fdb\u884c \u540e\u671f \u5904\u7406 * * Chrono \u53d1\u884c \u53d1\u884c\u7248 \u5305\u542b \uff08 \u5728 \u76ee\u5f55 \u4e2d src / demos / vehicle / \uff09 \u4e00\u4e2a \u793a\u4f8b POV - Ray \u811a\u672c \uff08 renderZ . pov \uff09 \uff0c \u53ef \u7528\u4e8e \uff08 \u6279\u91cf \uff09 \u5904\u7406 WriteVisualizationAssets \u751f\u6210 \u7684 \u683c\u5f0f \u7684 \u8f93\u51fa \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u3002 \u6b64 \u811a\u672c \u5047\u5b9a \u6240\u6709 \u6570\u636e \u5747 \u5728 \u53f3\u624b \u6846\u67b6 \u4e2d \u63d0\u4f9b \uff0c Z \u5411\u4e0a \uff08 ISO \u53c2\u8003 \u6846\u67b6 \uff09 \uff0c \u5e76 \u6267\u884c \u6240\u6709 \u5fc5\u8981 \u7684 \u8f6c\u6362 \u4e3a POV - Ray \u7684 Y \u5411\u4e0a \u5de6\u624b \u6846\u67b6 \u3002 \u8be5 \u811a\u672c \u63d0\u4f9b \u4ee5\u4e0b \u7528\u6237 \u63a7\u4ef6 \uff1a \u6e32\u67d3 \u5355\u5e27 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff08 \u5904\u7406 \u6279\u5904\u7406 \uff09 \u6253\u5f00 / \u5173\u95ed \u8eab\u4f53 \u53c2\u8003 \u6846\u67b6 \u7684 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u5168\u5c40 \u53c2\u8003 \u6846\u67b6 \u7684 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u8d44\u4ea7 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u56fa\u5b9a \u5728 \u5730\u9762 \u4e0a \u7684 \u8d44\u4ea7 \u7684 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u652f\u6301 \u5173\u8282 \u7684 \u6e32\u67d3 \u6253\u5f00 / \u5173\u95ed \u5f39\u7c27 \u548c \u51cf\u9707 \u51cf\u9707\u5668 \u7684 \u6e32\u67d3 \u6307\u5b9a \u8868\u793a \u5173\u8282 \u7684 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u5c3a\u5bf8 \u76f8\u673a \u4f4d\u7f6e \u548c \u89c2\u5bdf \u89c2\u5bdf\u70b9 \u542f\u7528 / \u7981\u7528 \u9634\u5f71 \u53ef \u9009 \u6e32\u67d3 \u73af\u5883 \uff08 \u5730\u9762 \u548c \u5929\u7a7a \uff09 \u8bf7 \u6ce8\u610f \uff0c \u8be5 renderZ . pov \u811a\u672c \u4ec5 \u4f5c\u4e3a \u8d77\u70b9 \u63d0\u4f9b \u3002 \u53ef\u4ee5 \u4f7f\u7528 POV - Ray \u751f\u6210 \u66f4 \u590d\u6742 \u3001 \u66f4 \u903c\u771f \u7684 \u56fe\u50cf \uff0c \u4f7f\u7528 \u66f4 \u590d\u6742 \u7684 \u6750\u6599 \u548c \u73af\u5883 \u3002 \u6700\u540e \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u7c7b\u4f3c \u7684 \u5de5\u4f5c \u6d41\u7a0b \u6765 \u6e32\u67d3 \u9664 POV - Ray \u4e4b\u5916 \u7684 \u5176\u4ed6 \u5f15\u64ce \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u7684 \u56fe\u50cf \u662f \u4f7f\u7528 WriteVisualizationAssets \u751f\u6210 \u7684 \u6570\u636e \u6587\u4ef6 \u6570\u636e\u6587\u4ef6 \u4f46 \u4f7f\u7528 Mitsuba \u5f15\u64ce \u751f\u6210 \u7684 \u3002","title":"\u4f7f\u7528 POV - Ray \u8fdb\u884c \u79bb\u7ebf \u6e32\u67d3"},{"location":"chrono/wheeled_driveline/","text":"\u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u56db \u8f6e\u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u57fa\u4e8e \u53cc\u8f6e \u8f74 \u7684 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u56db\u8f6e \u8fd0\u52a8 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf X \u8f6e \u8fd0\u52a8 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u56db \u8f6e\u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u8be5 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u677f \u4f7f\u7528 \u5404\u79cd Chrono 1 - D \u8f74 \u5143\u7d20 ( ChShaft ) \u548c \u4e13\u7528 \u8f74 \u8fde\u63a5 \u5143\u7d20 \u5efa\u6a21 \u3002 \u8fd9\u4e9b \u5143\u7d20 \u7528\u4e8e \u5efa\u6a21 \u5dee\u901f \u5dee\u901f\u5668 ( ChShaftsPlanetary ) \u3001 \u9525\u5f62 \u9f7f\u8f6e ( ChShaftsGearboxAngled ) \u548c \u5dee\u901f \u9501 \u79bb\u5408 \u79bb\u5408\u5668 ( ChShaftsClutch ) \u3002 \u53c2\u89c1 ChShaftsDriveline4WD \u548c ShaftsDriveline4WD \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 \u57fa\u4e8e \u8f74 \u7684 4WD \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u4e0e \u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u7684 \u8fde\u63a5 \u3002 \u4ee5\u4e0b \u793a\u4f8b JSON \u89c4\u8303 \u6587\u4ef6 \u8bf4\u660e \u4e86 \u57fa\u4e8e 4WD \u8f74 \u7684 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u53ef\u7528 \u7684 \u5404\u79cd \u6a21\u677f \u53c2\u6570 \uff1a { \" Name \" : \" HMMWV AWD Driveline \" , \" Type \" : \" Driveline \" , \" Template \" : \" ShaftsDriveline4WD \" , \" Shaft Direction \" : { \" Motor Block \" : [ 1 , 0 , 0 ] , \" Axle \" : [ 0 , 1 , 0 ] } , \" Shaft Inertia \" : { \" Driveshaft \" : 0.5 , \" Front Driveshaft \" : 0.5 , \" Rear Driveshaft \" : 0.5 , \" Central Differential Box \" : 0.6 , \" Front Differential Box \" : 0.6 , \" Rear Differential Box \" : 0.6 } , \" Gear Ratio \" : { \" Front Conical Gear \" : 0.2 , \" Rear Conical Gear \" : 0.2 } , \" Axle Differential Locking Limit \" : 100 , \" Central Differential Locking Limit \" : 100 } \u57fa\u4e8e \u53cc\u8f6e \u8f74 \u7684 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u8be5 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u677f \u7c7b\u4f3c \u4e8e \u57fa\u4e8e 4WD \u8f74 \u7684 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \uff0c \u4f46 \u53ea\u80fd \u9a71\u52a8 \u4e0e \u5355\u4e2a \u8f66\u8f74 \u76f8\u5173 \u7684 \u8f66\u8f6e \u3002 \u8be5 \u8f66\u8f74 \u662f \u4efb\u610f \u7684 \uff0c \u56e0\u6b64 \u8be5 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u53ef \u7528\u4e8e \u6a21\u62df \u524d\u8f6e \u9a71\u52a8 \u524d\u8f6e\u9a71\u52a8 \u548c \u540e\u8f6e \u9a71\u52a8 \u8f66\u8f86 \u3002 \u53c2\u89c1 ChShaftsDriveline2WD \u548c ShaftsDriveline2WD \u3002 \u5177\u6709 2WD \u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u662f \uff1a { \" Name \" : \" HMMWV RWD Driveline \" , \" Type \" : \" Driveline \" , \" Template \" : \" ShaftsDriveline2WD \" , \" Shaft Direction \" : { \" Motor Block \" : [ 1 , 0 , 0 ] , \" Axle \" : [ 0 , 1 , 0 ] } , \" Shaft Inertia \" : { \" Driveshaft \" : 0.5 , \" Differential Box \" : 0.6 } , \" Gear Ratio \" : { \" Conical Gear \" : 0.2 } , \" Axle Differential Locking Limit \" : 100 } \u56db\u8f6e \u8fd0\u52a8 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6b64 \u6a21\u677f \u53ef \u7528\u4e8e \u4e3a 4WD \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u5efa\u6a21 \u3002 \u5b83 \u4f7f\u7528 \u6052\u5b9a \u7684 \u524d / \u540e \u626d\u77e9 \u5206\u914d \uff08 0 \u5230 1 \u4e4b\u95f4 \u7684 \u503c \uff09 \u548c Torsen \u9650\u6ed1 \u5dee\u901f \u5dee\u901f\u5668 \u7684 \u7b80\u5355 \u6a21\u578b \u3002 \u53c2\u89c1 ChSimpleDriveline \u548c SimpleDriveline \u3002 \u5177\u6709 2WD \u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u662f \uff1a { \" Name \" : \" HMMWV 4WD Driveline \" , \" Type \" : \" Driveline \" , \" Template \" : \" SimpleDriveline \" , \" Front Torque Fraction \" : 0.5 , \" Front Differential Max Bias \" : 2.0 , \" Rear Differential Max Bias \" : 2.0 } X \u8f6e \u8fd0\u52a8 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6b64 \u7b80\u5355 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u677f \u53ef \u7528\u4e8e \u6a21\u62df XWD \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \uff0c \u53ef \u9a71\u52a8 \u4e00\u4e2a \u6216 \u591a\u4e2a \u8f66\u8f74 \u3002 \u5b83 \u4f7f\u7528 \u6839\u636e \u9a71\u52a8 \u8f74 \u6570\u91cf \u786e\u5b9a \u7684 \u6052\u5b9a \u626d\u77e9 \u5206\u914d \u548c Torsen \u9650\u6ed1 \u5dee\u901f \u5dee\u901f\u5668 \u7684 \u7b80\u5355 \u6a21\u578b \u3002 \u53c2\u89c1 ChSimpleDrivelineXWD \u548c SimpleDrivelineXWD \u3002 \u5177\u6709 2WD \u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u662f \uff1a { \" Name \" : \" MAN 5t , 7t , 10t XWD Driveline \" , \" Type \" : \" Driveline \" , \" Template \" : \" SimpleDrivelineXWD \" , \" Differential Max Bias \" : 2.0 }","title":"\u4f20\u52a8\u7cfb\u7edf \u6a21\u578b"},{"location":"chrono/wheeled_driveline/#_1","text":"\u56db \u8f6e\u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u57fa\u4e8e \u53cc\u8f6e \u8f74 \u7684 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u56db\u8f6e \u8fd0\u52a8 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf X \u8f6e \u8fd0\u52a8 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf","title":"\u4f20\u52a8\u7cfb\u7edf \u6a21\u578b"},{"location":"chrono/wheeled_driveline/#_2","text":"\u8be5 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u677f \u4f7f\u7528 \u5404\u79cd Chrono 1 - D \u8f74 \u5143\u7d20 ( ChShaft ) \u548c \u4e13\u7528 \u8f74 \u8fde\u63a5 \u5143\u7d20 \u5efa\u6a21 \u3002 \u8fd9\u4e9b \u5143\u7d20 \u7528\u4e8e \u5efa\u6a21 \u5dee\u901f \u5dee\u901f\u5668 ( ChShaftsPlanetary ) \u3001 \u9525\u5f62 \u9f7f\u8f6e ( ChShaftsGearboxAngled ) \u548c \u5dee\u901f \u9501 \u79bb\u5408 \u79bb\u5408\u5668 ( ChShaftsClutch ) \u3002 \u53c2\u89c1 ChShaftsDriveline4WD \u548c ShaftsDriveline4WD \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 \u57fa\u4e8e \u8f74 \u7684 4WD \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u4e0e \u57fa\u4e8e \u8f74 \u7684 \u52a8\u529b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u7684 \u8fde\u63a5 \u3002 \u4ee5\u4e0b \u793a\u4f8b JSON \u89c4\u8303 \u6587\u4ef6 \u8bf4\u660e \u4e86 \u57fa\u4e8e 4WD \u8f74 \u7684 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u53ef\u7528 \u7684 \u5404\u79cd \u6a21\u677f \u53c2\u6570 \uff1a { \" Name \" : \" HMMWV AWD Driveline \" , \" Type \" : \" Driveline \" , \" Template \" : \" ShaftsDriveline4WD \" , \" Shaft Direction \" : { \" Motor Block \" : [ 1 , 0 , 0 ] , \" Axle \" : [ 0 , 1 , 0 ] } , \" Shaft Inertia \" : { \" Driveshaft \" : 0.5 , \" Front Driveshaft \" : 0.5 , \" Rear Driveshaft \" : 0.5 , \" Central Differential Box \" : 0.6 , \" Front Differential Box \" : 0.6 , \" Rear Differential Box \" : 0.6 } , \" Gear Ratio \" : { \" Front Conical Gear \" : 0.2 , \" Rear Conical Gear \" : 0.2 } , \" Axle Differential Locking Limit \" : 100 , \" Central Differential Locking Limit \" : 100 }","title":"\u56db \u8f6e\u8f74 \u4f20\u52a8\u7cfb\u7edf"},{"location":"chrono/wheeled_driveline/#_3","text":"\u8be5 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u677f \u7c7b\u4f3c \u4e8e \u57fa\u4e8e 4WD \u8f74 \u7684 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \uff0c \u4f46 \u53ea\u80fd \u9a71\u52a8 \u4e0e \u5355\u4e2a \u8f66\u8f74 \u76f8\u5173 \u7684 \u8f66\u8f6e \u3002 \u8be5 \u8f66\u8f74 \u662f \u4efb\u610f \u7684 \uff0c \u56e0\u6b64 \u8be5 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u53ef \u7528\u4e8e \u6a21\u62df \u524d\u8f6e \u9a71\u52a8 \u524d\u8f6e\u9a71\u52a8 \u548c \u540e\u8f6e \u9a71\u52a8 \u8f66\u8f86 \u3002 \u53c2\u89c1 ChShaftsDriveline2WD \u548c ShaftsDriveline2WD \u3002 \u5177\u6709 2WD \u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u662f \uff1a { \" Name \" : \" HMMWV RWD Driveline \" , \" Type \" : \" Driveline \" , \" Template \" : \" ShaftsDriveline2WD \" , \" Shaft Direction \" : { \" Motor Block \" : [ 1 , 0 , 0 ] , \" Axle \" : [ 0 , 1 , 0 ] } , \" Shaft Inertia \" : { \" Driveshaft \" : 0.5 , \" Differential Box \" : 0.6 } , \" Gear Ratio \" : { \" Conical Gear \" : 0.2 } , \" Axle Differential Locking Limit \" : 100 }","title":"\u57fa\u4e8e \u53cc\u8f6e \u8f74 \u7684 \u4f20\u52a8\u7cfb\u7edf"},{"location":"chrono/wheeled_driveline/#_4","text":"\u6b64 \u6a21\u677f \u53ef \u7528\u4e8e \u4e3a 4WD \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u5efa\u6a21 \u3002 \u5b83 \u4f7f\u7528 \u6052\u5b9a \u7684 \u524d / \u540e \u626d\u77e9 \u5206\u914d \uff08 0 \u5230 1 \u4e4b\u95f4 \u7684 \u503c \uff09 \u548c Torsen \u9650\u6ed1 \u5dee\u901f \u5dee\u901f\u5668 \u7684 \u7b80\u5355 \u6a21\u578b \u3002 \u53c2\u89c1 ChSimpleDriveline \u548c SimpleDriveline \u3002 \u5177\u6709 2WD \u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u662f \uff1a { \" Name \" : \" HMMWV 4WD Driveline \" , \" Type \" : \" Driveline \" , \" Template \" : \" SimpleDriveline \" , \" Front Torque Fraction \" : 0.5 , \" Front Differential Max Bias \" : 2.0 , \" Rear Differential Max Bias \" : 2.0 }","title":"\u56db\u8f6e \u8fd0\u52a8 \u4f20\u52a8\u7cfb\u7edf"},{"location":"chrono/wheeled_driveline/#x","text":"\u6b64 \u7b80\u5355 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u677f \u53ef \u7528\u4e8e \u6a21\u62df XWD \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \uff0c \u53ef \u9a71\u52a8 \u4e00\u4e2a \u6216 \u591a\u4e2a \u8f66\u8f74 \u3002 \u5b83 \u4f7f\u7528 \u6839\u636e \u9a71\u52a8 \u8f74 \u6570\u91cf \u786e\u5b9a \u7684 \u6052\u5b9a \u626d\u77e9 \u5206\u914d \u548c Torsen \u9650\u6ed1 \u5dee\u901f \u5dee\u901f\u5668 \u7684 \u7b80\u5355 \u6a21\u578b \u3002 \u53c2\u89c1 ChSimpleDrivelineXWD \u548c SimpleDrivelineXWD \u3002 \u5177\u6709 2WD \u8f74 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u662f \uff1a { \" Name \" : \" MAN 5t , 7t , 10t XWD Driveline \" , \" Type \" : \" Driveline \" , \" Template \" : \" SimpleDrivelineXWD \" , \" Differential Max Bias \" : 2.0 }","title":"X \u8f6e \u8fd0\u52a8 \u4f20\u52a8\u7cfb\u7edf"},{"location":"chrono/wheeled_rig/","text":"\u6d4b\u8bd5 \u53f0\u67b6 \u60ac\u67b6 \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 \u8f6e\u80ce \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 \u60ac\u67b6 \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 ChSuspensionTestRig \u662f \u4e00\u79cd \u7528\u4e8e \u6d4b\u8bd5 \u6574\u4e2a \u8f66\u8f86 \u60ac\u67b6 \u7ec4\u4ef6 \u7684 \u88c5\u7f6e \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u6d4b\u8bd5 \u7684 \u60ac\u67b6 \uff1a \u901a\u8fc7 \u72ec\u7acb \u7684 JSON \u6587\u4ef6 \uff08 \u53ef\u80fd \u5305\u542b \u6216 \u4e0d \u5305\u542b \u8f6c\u5411 \u7cfb\u7edf \u5b50\u7cfb\u7edf \uff09 \u4f5c\u4e3a \u8f66\u8f86 JSON \u89c4\u8303 \u6587\u4ef6 \u4e2d \u7684 \u6307\u5b9a \u8f74 \u4f5c\u4e3a \u73b0\u6709 \u8f66\u8f86 \u7684 \u6307\u5b9a \u8f66\u8f74 \uff08 \u5fc5\u987b \u5df2 \u521d\u59cb \u521d\u59cb\u5316 \uff09 \u60ac\u67b6 \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 \u6709 \u4e24\u79cd \u578b\u53f7 \uff1a ChSuspensionTestRigPlatform \u4f7f\u7528 \u4e24\u4e2a \u72ec\u7acb \u7684 \u521a\u6027 \u5e73\u53f0 \uff0c \u901a\u8fc7 \u4e0e \u8f6e\u80ce \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u6765 \u9a71\u52a8 \u60ac\u67b6 \u673a\u6784 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 demo _ VEH _ SuspensionTestRigPlatform \u3002 ChSuspensionTestRigPushrod \u5c06 \u76f4\u63a5 \u9a71\u52a8 \u52a8\u529b \u9a71\u52a8\u529b \u65bd\u52a0 \u5230 \u8f66\u8f6e \u4e3b\u8f74 \u4e0a \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 demo _ VEH _ SuspensionTestRigPushrod \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 ChSuspensionTestRigPlatform \u6a21\u62df \uff08 \u4f7f\u7528 \u524d \u53cc\u53c9\u81c2 \u60ac\u67b6 \u548c TMeasy \u8f6e\u80ce \uff09 \u7684 \u5feb\u7167 \u548c \u793a\u4f8b \u8f93\u51fa \u56fe \u3002 \u4e0b\u56fe \u662f \u4f7f\u7528 \u524d \u53cc\u53c9\u81c2 \u60ac\u67b6 \u7684 ChSuspensionTestRigPushrod \u6a21\u62df \u7684 \u5feb\u7167 \u3002 \u8f6e\u80ce \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 ChTireTestRig \u662f \u4e00\u79cd \u7528\u4e8e \u6d4b\u8bd5 \u5355\u4e2a \u8f6e\u80ce \u4e0e \u521a\u6027 \u3001 SCM \u53ef \u53d8\u5f62 \u6216 \u7c92\u72b6 \u5730\u5f62 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u7684 \u88c5\u7f6e \u3002 \u6240\u6709 \u53ef\u7528 \u7684 Chrono : : Vehicle \u8f6e\u80ce \u6a21\u578b \u90fd \u53ef\u4ee5 \u4e0e \u6b64 \u6d4b\u8bd5 \u88c5\u7f6e \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4f46 \u53ea\u80fd \u4e0e \u4e00\u81f4 \u7684 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u7ed3\u5408 \u4f7f\u7528 \u3002 \u8f6e\u80ce \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 \u5141\u8bb8 \u7eb5\u5411 \u901f\u5ea6 \u3001 \u8f66\u8f6e \u901f\u5ea6 \u89d2\u901f\u5ea6 \u548c \u8f66\u8f6e \u6ed1\u79fb \u89d2\u968f \u65f6\u95f4 \u53d8\u5316 \uff0c \u652f\u6301 \u7eb5\u5411 \u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u81ea\u52a8 \u9009\u62e9 \uff0c \u4ee5 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6307\u5b9a \u7684 \u7eb5\u5411 \u6ed1\u79fb \u503c \uff0c \u5e76 \u5141\u8bb8 \u6307\u5b9a \u5916 \u503e\u89d2 \uff08 \u5728 \u6a21\u62df \u671f\u95f4 \u4fdd\u6301 \u4e0d\u53d8 \uff09 \u3002 \u53c2\u89c1 demo _ VEH _ TireTestRig \u548c demo _ VEH _ TireTestRig _ Multicore \u3002 \u4e0b\u9762 \u7684 \u56fe\u7247 \u662f \u5355 \u8f6e\u80ce \u6d4b\u8bd5 \u7684 \u5feb\u7167 \uff0c \u5206\u522b \u5728 \u521a\u6027 \u5730\u5f62 \u4e0a \u4f7f\u7528 Pac02 \u8f6e\u80ce \u548c \u5728 SCM \u53ef \u53d8\u5f62 \u5730\u5f62 \u4e0a \u4f7f\u7528 \u521a\u6027 \u8f6e\u80ce \u3002","title":"\u6d4b\u8bd5 \u53f0\u67b6"},{"location":"chrono/wheeled_rig/#_1","text":"\u60ac\u67b6 \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 \u8f6e\u80ce \u8bd5\u9a8c \u8bd5\u9a8c\u53f0","title":"\u6d4b\u8bd5 \u53f0\u67b6"},{"location":"chrono/wheeled_rig/#_2","text":"ChSuspensionTestRig \u662f \u4e00\u79cd \u7528\u4e8e \u6d4b\u8bd5 \u6574\u4e2a \u8f66\u8f86 \u60ac\u67b6 \u7ec4\u4ef6 \u7684 \u88c5\u7f6e \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u6d4b\u8bd5 \u7684 \u60ac\u67b6 \uff1a \u901a\u8fc7 \u72ec\u7acb \u7684 JSON \u6587\u4ef6 \uff08 \u53ef\u80fd \u5305\u542b \u6216 \u4e0d \u5305\u542b \u8f6c\u5411 \u7cfb\u7edf \u5b50\u7cfb\u7edf \uff09 \u4f5c\u4e3a \u8f66\u8f86 JSON \u89c4\u8303 \u6587\u4ef6 \u4e2d \u7684 \u6307\u5b9a \u8f74 \u4f5c\u4e3a \u73b0\u6709 \u8f66\u8f86 \u7684 \u6307\u5b9a \u8f66\u8f74 \uff08 \u5fc5\u987b \u5df2 \u521d\u59cb \u521d\u59cb\u5316 \uff09 \u60ac\u67b6 \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 \u6709 \u4e24\u79cd \u578b\u53f7 \uff1a ChSuspensionTestRigPlatform \u4f7f\u7528 \u4e24\u4e2a \u72ec\u7acb \u7684 \u521a\u6027 \u5e73\u53f0 \uff0c \u901a\u8fc7 \u4e0e \u8f6e\u80ce \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u6765 \u9a71\u52a8 \u60ac\u67b6 \u673a\u6784 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 demo _ VEH _ SuspensionTestRigPlatform \u3002 ChSuspensionTestRigPushrod \u5c06 \u76f4\u63a5 \u9a71\u52a8 \u52a8\u529b \u9a71\u52a8\u529b \u65bd\u52a0 \u5230 \u8f66\u8f6e \u4e3b\u8f74 \u4e0a \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 demo _ VEH _ SuspensionTestRigPushrod \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 ChSuspensionTestRigPlatform \u6a21\u62df \uff08 \u4f7f\u7528 \u524d \u53cc\u53c9\u81c2 \u60ac\u67b6 \u548c TMeasy \u8f6e\u80ce \uff09 \u7684 \u5feb\u7167 \u548c \u793a\u4f8b \u8f93\u51fa \u56fe \u3002 \u4e0b\u56fe \u662f \u4f7f\u7528 \u524d \u53cc\u53c9\u81c2 \u60ac\u67b6 \u7684 ChSuspensionTestRigPushrod \u6a21\u62df \u7684 \u5feb\u7167 \u3002","title":"\u60ac\u67b6 \u8bd5\u9a8c\u53f0"},{"location":"chrono/wheeled_rig/#_3","text":"ChTireTestRig \u662f \u4e00\u79cd \u7528\u4e8e \u6d4b\u8bd5 \u5355\u4e2a \u8f6e\u80ce \u4e0e \u521a\u6027 \u3001 SCM \u53ef \u53d8\u5f62 \u6216 \u7c92\u72b6 \u5730\u5f62 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u7684 \u88c5\u7f6e \u3002 \u6240\u6709 \u53ef\u7528 \u7684 Chrono : : Vehicle \u8f6e\u80ce \u6a21\u578b \u90fd \u53ef\u4ee5 \u4e0e \u6b64 \u6d4b\u8bd5 \u88c5\u7f6e \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4f46 \u53ea\u80fd \u4e0e \u4e00\u81f4 \u7684 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u7ed3\u5408 \u4f7f\u7528 \u3002 \u8f6e\u80ce \u8bd5\u9a8c \u8bd5\u9a8c\u53f0 \u5141\u8bb8 \u7eb5\u5411 \u901f\u5ea6 \u3001 \u8f66\u8f6e \u901f\u5ea6 \u89d2\u901f\u5ea6 \u548c \u8f66\u8f6e \u6ed1\u79fb \u89d2\u968f \u65f6\u95f4 \u53d8\u5316 \uff0c \u652f\u6301 \u7eb5\u5411 \u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u81ea\u52a8 \u9009\u62e9 \uff0c \u4ee5 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6307\u5b9a \u7684 \u7eb5\u5411 \u6ed1\u79fb \u503c \uff0c \u5e76 \u5141\u8bb8 \u6307\u5b9a \u5916 \u503e\u89d2 \uff08 \u5728 \u6a21\u62df \u671f\u95f4 \u4fdd\u6301 \u4e0d\u53d8 \uff09 \u3002 \u53c2\u89c1 demo _ VEH _ TireTestRig \u548c demo _ VEH _ TireTestRig _ Multicore \u3002 \u4e0b\u9762 \u7684 \u56fe\u7247 \u662f \u5355 \u8f6e\u80ce \u6d4b\u8bd5 \u7684 \u5feb\u7167 \uff0c \u5206\u522b \u5728 \u521a\u6027 \u5730\u5f62 \u4e0a \u4f7f\u7528 Pac02 \u8f6e\u80ce \u548c \u5728 SCM \u53ef \u53d8\u5f62 \u5730\u5f62 \u4e0a \u4f7f\u7528 \u521a\u6027 \u8f6e\u80ce \u3002","title":"\u8f6e\u80ce \u8bd5\u9a8c\u53f0"},{"location":"chrono/wheeled_steering/","text":"\u8f6c\u5411 \u673a\u6784 \u6a21\u578b \u8f6c\u5411 \u81c2 \u9f7f\u6761 \u9f7f\u8f6e \u65cb\u81c2 \u57fa\u7c7b ChSteering \u89c4\u5b9a \u4efb\u4f55 \u6d3e\u751f \u7684 \u8f6c\u5411 \u673a\u6784 \u7c7b \uff08 \u8f6c\u5411 \u673a\u6784 \u6a21\u677f \uff09 \u90fd \u5e94 \u63d0\u4f9b \u4e00\u4e2a \u8f6c\u5411 \u8fde\u6746 \u4f53 \uff0c \u53ef \u8f6c\u5411 \u60ac\u67b6 \u53ef\u4ee5 \u4e0e\u5176 \u8fde\u63a5 \uff08 \u901a\u5e38 \u901a\u8fc7 \u60ac\u67b6 \u7684 \u8f6c\u5411 \u8fde\u6746 \uff09 \u3002 \u6d3e\u751f \u8f6c\u5411 \u673a\u6784 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u7279\u5b9a \u7c7b\u578b \u7684 \u8f6c\u5411 \u673a\u6784 \u7684 \u4e3b\u4f53 \u3001 \u5173\u8282 \u3001 \u529b \u5143\u7d20 \u548c \u62d3\u6251 \u3002 \u6240\u6709 \u4f4d\u7f6e \u5747 \u5047\u5b9a \u76f8\u5bf9 \u4e8e \u673a\u6784 \u53c2\u8003 \u53c2\u8003\u7cfb \u63d0\u4f9b \uff08 \u6d3e\u751f \u8f6c\u5411 \u673a\u6784 \u7c7b\u578b \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u6b64 \u6846\u67b6 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff09 \u3002 \u901a\u8fc7 \u6307\u5b9a \u673a\u6784 \u7ec4\u4ef6 \u53c2\u8003 \u53c2\u8003\u7cfb \u76f8\u5bf9 \u4e8e \u5e95\u76d8 \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff08 \u53c2\u89c1 ISO \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u5b9a\u4e49 \uff09 \uff0c \u5c06 \u8f6c\u5411 \u673a\u6784 \u7ec4\u4ef6 \u5b89\u88c5 \u5230 \u8f66\u8f86 \u5e95\u76d8 \u4e0a \u3002 \u8f6e\u5f0f \u8f66\u8f86 \u53ef\u80fd \u6709 \u591a\u4e2a \u8f6c\u5411 \u673a\u6784 \uff0c \u6bcf\u4e2a \u8f6c\u5411 \u673a\u6784 \u4e0e \u4e0d\u540c \u7684 \u8f6c\u5411 \u8f66\u8f74 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u540c\u6837 \uff0c \u5355\u4e2a \u8f6c\u5411 \u673a\u6784 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u591a\u4e2a \u8f6c\u5411 \u8f66\u8f74 \u3002 \u8f6c\u5411 \u81c2 \u8be5 \u8f6c\u5411 \u673a\u6784 \u4e3a \u56db \u8fde\u6746 \u673a\u6784 \u8fde\u6746\u673a\u6784 \uff0c \u8f6c\u5411 \u8fde\u6746 \u4f53 \u901a\u8fc7 \u8f6c\u5411 \u81c2 \u548c \u60f0\u81c2 \u4e0e \u5e95\u76d8 \u76f8\u8fde \u3002 \u8f6c\u5411 \u81c2\u4f53 \u901a\u8fc7 \u4e07\u5411 \u4e07\u5411\u8282 \u4e0e \u8f6c\u5411 \u8fde\u6746 \u76f8\u8fde \uff0c \u901a\u8fc7 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u4e0e \u5e95\u76d8 \u76f8\u8fde \u3002 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f6c\u5411 \u8f93\u5165 \u7528\u4e8e \u63a7\u5236 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u7684 \u89d2\u5ea6 \u3002 \u5728 Chrono : : Vehicle \u8f6c\u5411 \u81c2 \u6a21\u677f \u4e2d \uff0c \u60f0\u81c2 \u91c7\u7528 \u590d\u5408 \u65cb\u8f6c \u7403 \u5173\u8282 \u5efa\u6a21 \u3002 \u53c2\u89c1 ChPitmanArm \u548c PitmanArm \u3002 \u672c \u8f6c\u5411 \u673a\u6784 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u627f \u529b\u70b9 \u5982\u4e0b \uff1a \u5177\u6709 PitmanArm \u8f6c\u5411 \u673a\u6784 \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u5982\u4e0b \uff1a { \" Name \" : \" HMMWV Pitman Arm Steering \" , \" Type \" : \" Steering \" , \" Template \" : \" PitmanArm \" , \" Vehicle - Frame Inertia \" : false , \" Steering Link \" : { \" Mass \" : 3.681 , \" COM \" : [ 0.129 , 0 , 0 ] , \" Moments of Inertia \" : [ 0.252 , 0.00233 , 0.254 ] , \" Products of Inertia \" : [ 0 , 0 , 0 ] , \" Radius \" : 0.03 } , \" Pitman Arm \" : { \" Mass \" : 1.605 , \" COM \" : [ 0.064 , 0.249 , 0 ] , \" Moments of Inertia \" : [ 0.00638 , 0.00756 , 0.00150 ] , \" Products of Inertia \" : [ 0 , 0 , 0 ] , \" Radius \" : 0.02 } , \" Revolute Joint \" : { \" Location \" : [ 0 , 0.249 , 0 ] , \" Direction \" : [ 0 , 0 , 1 ] , \" Maximum Angle ( deg ) \" : 30 } , \" Universal Joint \" : { \" Location \" : [ 0.129 , 0.249 , 0 ] , \" Direction Arm \" : [ 0 , 0 , 1 ] , \" Direction Link \" : [ 1 , 0 , 0 ] } , \" Revolute - Spherical Joint \" : { \" Location Chassis \" : [ 0 , - 0.325 , 0 ] , \" Location Link \" : [ 0.129 , - 0.325 , 0 ] , \" Direction \" : [ 0 , 0 , 1 ] } , \" Tierod Locations \" : { \" Pitman Side \" : [ 0.195 , 0.448 , 0.035 ] , \" Idler Side \" : [ 0.195 , - 0.448 , 0.035 ] } } \u9f7f\u6761 \u9f7f\u8f6e Chrono : : Vehicle \u9f7f\u6761 \u9f7f\u8f6e \u8f6c\u5411 \u6a21\u677f \u662f \u9f7f\u6761 \u9f7f\u8f6e \u8f6c\u5411 \u673a\u6784 \u7684 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u6a21\u578b \u3002 \u8f6c\u5411 \u8fde\u6746 \u4f53 \u901a\u8fc7 \u68f1\u67f1 \u5173\u8282 \u8fde\u63a5 \u5230 \u5e95\u76d8 \u3002 \u9f7f\u6761 \u4f4d\u79fb \u8ba1\u7b97 \u5982\u4e0b \uff1a d = r \uff08 \u03b1 \u6700\u5927 \u9650\u5ea6 s ) \u5176\u4e2d r \u662f \u5c0f\u9f7f \u9f7f\u8f6e \u5c0f\u9f7f\u8f6e \u534a\u5f84 \uff0c \u03b1 \u6700\u5927 \u9650\u5ea6 \u662f \u6700\u5927 \u5c0f\u9f7f \u9f7f\u8f6e \u5c0f\u9f7f\u8f6e \u89d2 \uff0c \u5e76\u4e14 s \u2208 [ \u2212 1 , 1 ] \u662f \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u8f6c\u5411 \u8f93\u5165 \u3002 \u8be5 \u4f4d\u79fb \u7528\u4e8e \u63a7\u5236 \u8f6c\u5411 \u8fde\u6746 \u7684 \u5e73\u79fb \u3002 \u53c2\u89c1 ChRackPinion \u548c RackPinion \u3002 \u672c \u8f6c\u5411 \u673a\u6784 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u53d7\u529b \u70b9 \u5982\u4e0b \uff1a \u5177\u6709 RackPinion \u8f6c\u5411 \u673a\u6784 \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u5982\u4e0b \uff1a { \" Name \" : \" HMMWV Rack - Pinion Steering \" , \" Type \" : \" Steering \" , \" Template \" : \" RackPinion \" , \" Steering Link \" : { \" Mass \" : 9.072 , \" COM \" : 0 , \" Inertia \" : [ 1 , 1 , 1 ] , \" Radius \" : 0.03 , \" Length \" : 0.896 } , \" Pinion \" : { \" Radius \" : 0.1 , \" Maximum Angle ( deg ) \" : 50 } } \u65cb\u81c2 \u65cb\u8f6c \u81c2 \u8f6c\u5411 \u662f \u4e00\u79cd \u7ed5\u8f74 \u65cb\u8f6c \u7684 \u7b80\u5355 \u6760\u6746 \u81c2 \u3002 \u5b83 \u4e0e \u5b9e\u5fc3 \u6447\u81c2 \u8f74 \u548c \u5b9e\u5fc3 \u524d\u675f \u8f74 \u914d\u5408 \u4f7f\u7528 \u3002 \u5b83 \u901a\u5e38 \u7528\u4f5c \u5361\u8f66 \u3001 \u519c\u7528 \u62d6\u62c9 \u62d6\u62c9\u673a \u548c \u8054\u5408 \u6536\u5272 \u5272\u673a \u6536\u5272\u673a \u7684 \u8f6c\u5411 \u7cfb\u7edf \u3002 \u53c2\u89c1 ChRotaryArm \u548c RotaryArm \u3002 \u672c \u8f6c\u5411 \u673a\u6784 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u53d7\u529b \u70b9 \u5982\u4e0b \uff1a \u5177\u6709 RotaryArm \u8f6c\u5411 \u673a\u6784 \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u5982\u4e0b \uff1a { \" Name \" : \" UAZBUS Rotary - Arm Steering \" , \" Type \" : \" Steering \" , \" Template \" : \" RotaryArm \" , \" Pitman Arm \" : { \" Mass \" : 5.0 , \" Inertia \" : [ 0.00638 , 0.00756 , 0.00150 ] , \" Inertia Products \" : [ 0 , 0 , 0 ] , \" Radius \" : 0.03 , \" Axis of Rotation \" : [ 0 , 1 , 0 ] , / / arm - chassis revolute joint \" Point of Rotation \" : [ 0.6 , 0.5325 , 0.4 ] , / / location of chassis connection \" Point to Draglink \" : [ 0.6 , 0.5325 , 0.2 ] , / / location of draglink connection \" Maximum Angle ( deg ) \" : 12.5 } }","title":"\u8f6c\u5411 \u673a\u6784 \u6a21\u578b"},{"location":"chrono/wheeled_steering/#_1","text":"\u8f6c\u5411 \u81c2 \u9f7f\u6761 \u9f7f\u8f6e \u65cb\u81c2 \u57fa\u7c7b ChSteering \u89c4\u5b9a \u4efb\u4f55 \u6d3e\u751f \u7684 \u8f6c\u5411 \u673a\u6784 \u7c7b \uff08 \u8f6c\u5411 \u673a\u6784 \u6a21\u677f \uff09 \u90fd \u5e94 \u63d0\u4f9b \u4e00\u4e2a \u8f6c\u5411 \u8fde\u6746 \u4f53 \uff0c \u53ef \u8f6c\u5411 \u60ac\u67b6 \u53ef\u4ee5 \u4e0e\u5176 \u8fde\u63a5 \uff08 \u901a\u5e38 \u901a\u8fc7 \u60ac\u67b6 \u7684 \u8f6c\u5411 \u8fde\u6746 \uff09 \u3002 \u6d3e\u751f \u8f6c\u5411 \u673a\u6784 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u7279\u5b9a \u7c7b\u578b \u7684 \u8f6c\u5411 \u673a\u6784 \u7684 \u4e3b\u4f53 \u3001 \u5173\u8282 \u3001 \u529b \u5143\u7d20 \u548c \u62d3\u6251 \u3002 \u6240\u6709 \u4f4d\u7f6e \u5747 \u5047\u5b9a \u76f8\u5bf9 \u4e8e \u673a\u6784 \u53c2\u8003 \u53c2\u8003\u7cfb \u63d0\u4f9b \uff08 \u6d3e\u751f \u8f6c\u5411 \u673a\u6784 \u7c7b\u578b \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u6b64 \u6846\u67b6 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff09 \u3002 \u901a\u8fc7 \u6307\u5b9a \u673a\u6784 \u7ec4\u4ef6 \u53c2\u8003 \u53c2\u8003\u7cfb \u76f8\u5bf9 \u4e8e \u5e95\u76d8 \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff08 \u53c2\u89c1 ISO \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u5b9a\u4e49 \uff09 \uff0c \u5c06 \u8f6c\u5411 \u673a\u6784 \u7ec4\u4ef6 \u5b89\u88c5 \u5230 \u8f66\u8f86 \u5e95\u76d8 \u4e0a \u3002 \u8f6e\u5f0f \u8f66\u8f86 \u53ef\u80fd \u6709 \u591a\u4e2a \u8f6c\u5411 \u673a\u6784 \uff0c \u6bcf\u4e2a \u8f6c\u5411 \u673a\u6784 \u4e0e \u4e0d\u540c \u7684 \u8f6c\u5411 \u8f66\u8f74 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u540c\u6837 \uff0c \u5355\u4e2a \u8f6c\u5411 \u673a\u6784 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u591a\u4e2a \u8f6c\u5411 \u8f66\u8f74 \u3002","title":"\u8f6c\u5411 \u673a\u6784 \u6a21\u578b"},{"location":"chrono/wheeled_steering/#_2","text":"\u8be5 \u8f6c\u5411 \u673a\u6784 \u4e3a \u56db \u8fde\u6746 \u673a\u6784 \u8fde\u6746\u673a\u6784 \uff0c \u8f6c\u5411 \u8fde\u6746 \u4f53 \u901a\u8fc7 \u8f6c\u5411 \u81c2 \u548c \u60f0\u81c2 \u4e0e \u5e95\u76d8 \u76f8\u8fde \u3002 \u8f6c\u5411 \u81c2\u4f53 \u901a\u8fc7 \u4e07\u5411 \u4e07\u5411\u8282 \u4e0e \u8f6c\u5411 \u8fde\u6746 \u76f8\u8fde \uff0c \u901a\u8fc7 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u4e0e \u5e95\u76d8 \u76f8\u8fde \u3002 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8f6c\u5411 \u8f93\u5165 \u7528\u4e8e \u63a7\u5236 \u65cb\u8f6c \u8f6c\u5173 \u5173\u8282 \u65cb\u8f6c\u5173\u8282 \u7684 \u89d2\u5ea6 \u3002 \u5728 Chrono : : Vehicle \u8f6c\u5411 \u81c2 \u6a21\u677f \u4e2d \uff0c \u60f0\u81c2 \u91c7\u7528 \u590d\u5408 \u65cb\u8f6c \u7403 \u5173\u8282 \u5efa\u6a21 \u3002 \u53c2\u89c1 ChPitmanArm \u548c PitmanArm \u3002 \u672c \u8f6c\u5411 \u673a\u6784 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u627f \u529b\u70b9 \u5982\u4e0b \uff1a \u5177\u6709 PitmanArm \u8f6c\u5411 \u673a\u6784 \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u5982\u4e0b \uff1a { \" Name \" : \" HMMWV Pitman Arm Steering \" , \" Type \" : \" Steering \" , \" Template \" : \" PitmanArm \" , \" Vehicle - Frame Inertia \" : false , \" Steering Link \" : { \" Mass \" : 3.681 , \" COM \" : [ 0.129 , 0 , 0 ] , \" Moments of Inertia \" : [ 0.252 , 0.00233 , 0.254 ] , \" Products of Inertia \" : [ 0 , 0 , 0 ] , \" Radius \" : 0.03 } , \" Pitman Arm \" : { \" Mass \" : 1.605 , \" COM \" : [ 0.064 , 0.249 , 0 ] , \" Moments of Inertia \" : [ 0.00638 , 0.00756 , 0.00150 ] , \" Products of Inertia \" : [ 0 , 0 , 0 ] , \" Radius \" : 0.02 } , \" Revolute Joint \" : { \" Location \" : [ 0 , 0.249 , 0 ] , \" Direction \" : [ 0 , 0 , 1 ] , \" Maximum Angle ( deg ) \" : 30 } , \" Universal Joint \" : { \" Location \" : [ 0.129 , 0.249 , 0 ] , \" Direction Arm \" : [ 0 , 0 , 1 ] , \" Direction Link \" : [ 1 , 0 , 0 ] } , \" Revolute - Spherical Joint \" : { \" Location Chassis \" : [ 0 , - 0.325 , 0 ] , \" Location Link \" : [ 0.129 , - 0.325 , 0 ] , \" Direction \" : [ 0 , 0 , 1 ] } , \" Tierod Locations \" : { \" Pitman Side \" : [ 0.195 , 0.448 , 0.035 ] , \" Idler Side \" : [ 0.195 , - 0.448 , 0.035 ] } }","title":"\u8f6c\u5411 \u81c2 "},{"location":"chrono/wheeled_steering/#_3","text":"Chrono : : Vehicle \u9f7f\u6761 \u9f7f\u8f6e \u8f6c\u5411 \u6a21\u677f \u662f \u9f7f\u6761 \u9f7f\u8f6e \u8f6c\u5411 \u673a\u6784 \u7684 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u6a21\u578b \u3002 \u8f6c\u5411 \u8fde\u6746 \u4f53 \u901a\u8fc7 \u68f1\u67f1 \u5173\u8282 \u8fde\u63a5 \u5230 \u5e95\u76d8 \u3002 \u9f7f\u6761 \u4f4d\u79fb \u8ba1\u7b97 \u5982\u4e0b \uff1a d = r \uff08 \u03b1 \u6700\u5927 \u9650\u5ea6 s ) \u5176\u4e2d r \u662f \u5c0f\u9f7f \u9f7f\u8f6e \u5c0f\u9f7f\u8f6e \u534a\u5f84 \uff0c \u03b1 \u6700\u5927 \u9650\u5ea6 \u662f \u6700\u5927 \u5c0f\u9f7f \u9f7f\u8f6e \u5c0f\u9f7f\u8f6e \u89d2 \uff0c \u5e76\u4e14 s \u2208 [ \u2212 1 , 1 ] \u662f \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u8f6c\u5411 \u8f93\u5165 \u3002 \u8be5 \u4f4d\u79fb \u7528\u4e8e \u63a7\u5236 \u8f6c\u5411 \u8fde\u6746 \u7684 \u5e73\u79fb \u3002 \u53c2\u89c1 ChRackPinion \u548c RackPinion \u3002 \u672c \u8f6c\u5411 \u673a\u6784 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u53d7\u529b \u70b9 \u5982\u4e0b \uff1a \u5177\u6709 RackPinion \u8f6c\u5411 \u673a\u6784 \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u5982\u4e0b \uff1a { \" Name \" : \" HMMWV Rack - Pinion Steering \" , \" Type \" : \" Steering \" , \" Template \" : \" RackPinion \" , \" Steering Link \" : { \" Mass \" : 9.072 , \" COM \" : 0 , \" Inertia \" : [ 1 , 1 , 1 ] , \" Radius \" : 0.03 , \" Length \" : 0.896 } , \" Pinion \" : { \" Radius \" : 0.1 , \" Maximum Angle ( deg ) \" : 50 } }","title":"\u9f7f\u6761 \u9f7f\u8f6e "},{"location":"chrono/wheeled_steering/#_4","text":"\u65cb\u8f6c \u81c2 \u8f6c\u5411 \u662f \u4e00\u79cd \u7ed5\u8f74 \u65cb\u8f6c \u7684 \u7b80\u5355 \u6760\u6746 \u81c2 \u3002 \u5b83 \u4e0e \u5b9e\u5fc3 \u6447\u81c2 \u8f74 \u548c \u5b9e\u5fc3 \u524d\u675f \u8f74 \u914d\u5408 \u4f7f\u7528 \u3002 \u5b83 \u901a\u5e38 \u7528\u4f5c \u5361\u8f66 \u3001 \u519c\u7528 \u62d6\u62c9 \u62d6\u62c9\u673a \u548c \u8054\u5408 \u6536\u5272 \u5272\u673a \u6536\u5272\u673a \u7684 \u8f6c\u5411 \u7cfb\u7edf \u3002 \u53c2\u89c1 ChRotaryArm \u548c RotaryArm \u3002 \u672c \u8f6c\u5411 \u673a\u6784 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u53d7\u529b \u70b9 \u5982\u4e0b \uff1a \u5177\u6709 RotaryArm \u8f6c\u5411 \u673a\u6784 \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \u5982\u4e0b \uff1a { \" Name \" : \" UAZBUS Rotary - Arm Steering \" , \" Type \" : \" Steering \" , \" Template \" : \" RotaryArm \" , \" Pitman Arm \" : { \" Mass \" : 5.0 , \" Inertia \" : [ 0.00638 , 0.00756 , 0.00150 ] , \" Inertia Products \" : [ 0 , 0 , 0 ] , \" Radius \" : 0.03 , \" Axis of Rotation \" : [ 0 , 1 , 0 ] , / / arm - chassis revolute joint \" Point of Rotation \" : [ 0.6 , 0.5325 , 0.4 ] , / / location of chassis connection \" Point to Draglink \" : [ 0.6 , 0.5325 , 0.2 ] , / / location of draglink connection \" Maximum Angle ( deg ) \" : 12.5 } }","title":"\u65cb\u81c2 "},{"location":"chrono/wheeled_suspension/","text":"\u60ac\u6302 \u6a21\u578b \u60ac \u67b6\u5b50 \u7cfb\u7edf \u662f \u8f6e\u5f0f \u8f66\u8f86 \u7684 \u4e00\u4e2a \u8f74 \u7684 \u6a21\u578b \u3002 \u57fa\u7c7b ChSuspension \u89c4\u5b9a \uff0c \u4efb\u4f55 \u6d3e\u751f \u7684 \u60ac\u67b6 \u7c7b \uff08 \u60ac\u67b6 \u6a21\u677f \uff09 \u90fd \u63d0\u4f9b \u4e24\u4e2a \u8f66\u8f6e \u4e3b\u8f74 \uff08 \u5de6\u548c\u53f3 \uff09 \uff0c \u6bcf\u4e2a \u8f66\u8f6e \u4e3b\u8f74 \u901a\u8fc7 \u65cb\u8f6c \u63a5\u5934 \u8fde\u63a5 \u5230 \u8be5 \u7c7b\u578b \u60ac\u67b6 \u7684 \u67d0\u4e2a \u90e8\u5206 \uff0c \u4ee5\u53ca \u4e24\u4e2a \u4e3b\u8f74 \u8f74 \uff08 ChShaft \u7c7b\u578b \u7684 \u5143\u7d20 \uff09 \uff0c \u5982\u679c \u8be5 \u8f74 \u88ab \u9a71\u52a8 \uff0c \u5219 \u53ef \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u3002 \u6d3e\u751f \u60ac\u67b6 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u4e86 \u7279\u5b9a \u7c7b\u578b \u60ac\u67b6 \u7684 \u4e3b\u4f53 \u3001 \u5173\u8282 \u3001 \u529b \u5143\u7d20 \u548c \u62d3\u6251 \u7ed3\u6784 \u3002 \u6240\u6709 \u4f4d\u7f6e \u5747 \u5047\u5b9a \u76f8\u5bf9 \u4e8e \u60ac\u67b6 \u53c2\u8003 \u53c2\u8003\u7cfb \u63d0\u4f9b \uff08 \u6d3e\u751f \u60ac\u67b6 \u7c7b\u578b \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u6b64 \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u4f4d\u7f6e \uff0c \u4f46 \u4e0d\u80fd \u9009\u62e9 \u5176 \u65b9\u5411 \uff0c \u5047\u5b9a \u65b9\u5411 \u4e0e \u5e95\u76d8 ISO \u53c2\u8003 \u53c2\u8003\u7cfb \u5e73\u884c \uff09 \u3002 \u901a\u8fc7 \u6307\u5b9a \u60ac\u67b6 \u7ec4\u4ef6 \u53c2\u8003 \u53c2\u8003\u7cfb \u76f8\u5bf9 \u4e8e \u5e95\u76d8 \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u4f4d\u7f6e \uff08 \u53c2\u89c1 ISO \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u5b9a\u4e49 \uff09 \uff0c \u5c06 \u60ac\u67b6 \u7ec4\u4ef6 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u5e95\u76d8 \u4e0a \u3002 \u53cc\u53c9\u81c2 \u72ec\u7acb \u64cd\u7eb5 \u53ef\u64cd\u7eb5 \u60ac\u67b6 \uff0c \u4f7f\u7528 \u4e24\u4e2a \u53c9\u81c2 \u63a7\u5236 \u81c2 \uff08 \u4e5f \u79f0\u4e3a A \u81c2 \uff09 \u8fde\u63a5 \u8f6c\u5411 \u8f6c\u5411\u8282 \u548c \u5e95\u76d8 \u3002 \u7528\u4f5c HMMWV \u8f66\u8f86 \u6a21\u578b \u7684 \u60ac\u67b6 \u524d\u60ac\u67b6 \u548c \u540e \u60ac\u67b6 \u3002 \u53c2\u89c1 ChDoubleWishbone \u548c DoubleWishbone \u3002 \uff08 wishbone \u53c9 \u9aa8 \uff0c \u5982\u613f \u9aa8 \uff08 \u5403 \u5bb6\u79bd \u7b49 \u65f6 \u4e24\u4eba \u5c06 \u9888 \u4e0e \u80f8 \u4e4b\u95f4 \u7684 V \u5f62\u9aa8 \u62c9\u5f00 \uff0c \u5f97 \u5927\u5757 \u9aa8\u8005 \u53ef \u8bb8\u613f \uff09 \uff09 \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u53cc\u53c9\u81c2 \uff08 \u7b80\u5316 \uff09 \u8fd9\u79cd \u7b80\u5316 \u7684 \u53cc\u53c9\u81c2 \u60ac\u67b6 \u6a21\u677f \u4f7f\u7528 \u4e24\u4e2a \u8ddd\u79bb \u7ea6\u675f \u6765 \u6a21\u62df \u4e0b \u63a7\u5236 \u81c2 \u548c \u4e0a \u63a7\u5236 \u81c2 \u3002 \u5f53 \u63a7\u5236 \u81c2 \u7684 \u8d28\u91cf \u548c \u60ef\u6027 \u76f8\u5bf9 \u4e8e \u7cfb\u7edf \u4e2d \u7684 \u5176\u4ed6 \u7269\u4f53 \u8f83 \u5c0f \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5ffd\u7565 \u4e0d\u8ba1 \u5ffd\u7565\u4e0d\u8ba1 \u65f6 \uff0c \u8fd9\u79cd \u60ac\u67b6 \u7c7b\u578b \u662f \u5408\u9002 \u7684 \u3002 \u53c2\u89c1 ChDoubleWishboneReduced \u548c DoubleWishboneReduced \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u9ea6\u5f17\u900a \u652f\u67f1 \u53ef \u8f6c\u5411 \u72ec\u7acb \u60ac\u67b6 \u7cfb\u7edf \uff0c \u9002\u7528 \u4e8e \u524d\u8f6e \u9a71\u52a8 \u524d\u8f6e\u9a71\u52a8 \u3001 \u6a2a\u5411 \u5b89\u88c5 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a / \u53d8\u901f \u53d8\u901f\u7bb1 \u7684 \u4e2d\u5c0f \u5c0f\u578b \u4e2d\u5c0f\u578b \u7528\u8f66 \u4e58\u7528\u8f66 \u3002 \u53c2\u89c1 ChMacPhersonStrut \u548c MacPhersonStrut \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u591a \u8fde\u6746 \u8be5 \u60ac\u67b6 \u7cfb\u7edf \u7c7b\u4f3c \u4e8e \u53cc\u53c9\u81c2 \u8f74 \uff0c \u62d6\u66f3 \u81c2 \u53ef\u4ee5 \u627f\u53d7 \u8f83\u5927 \u7684 \u7eb5\u5411 \u529b \u3002 \u53c2\u89c1 ChMultiLink \u548c MultiLink \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u534a \u62d6\u66f3 \u81c2 \u5c0f\u578b \u7528\u8f66 \u4e58\u7528\u8f66 \u91c7\u7528 \u7b80\u5355 \u7684 \u72ec\u7acb \u8f74 \u7cfb\u7edf \u4f5c\u4e3a \u540e \u60ac\u67b6 \u3002 \u53c2\u89c1 ChSemiTrailingArm \u548c SemiTrailingArm \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u5b9e\u5fc3 \u8f74 \u7531 \u56db\u4e2a \u8fde\u6746 \u5f15\u5bfc \u7684 \u5b9e\u5fc3 \u8f74 \u7cfb\u7edf \u3002 \u5b83 \u901a\u5e38 \u4f7f\u7528 \u87ba\u65cb \u5f39\u7c27 \u87ba\u65cb\u5f39\u7c27 \u6216 \u7a7a\u6c14 \u5f39\u7c27 \uff0c \u5e38\u89c1 \u89c1\u4e8e \u5e38\u89c1\u4e8e \u8f83 \u65e7 \u7684 \u7528\u8f66 \u4e58\u7528\u8f66 \u3002 \u53c2\u89c1 ChSolidAxle \u548c SolidAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u5b9e\u5fc3 \u4e09 \u8fde\u6746 \u8f74 \u7528\u4f5c MAN 5t \u3001 MAN 7t \u548c MAN 10t \u5361\u8f66 \u578b\u53f7 \u7684 \u540e \u60ac\u67b6 \u3002 \u8fd9\u79cd \u60ac\u67b6 \u5141\u8bb8 \u975e\u5e38 \u9ad8 \u7684 \u8f66\u8f6e \u884c\u7a0b \uff0c \u8fd9\u662f \u677f\u7c27 \u65e0\u6cd5 \u5b9e\u73b0 \u7684 \u3002 \u5b83 \u4e5f \u7528\u4e8e \u5e26\u6709 \u7a7a\u6c14 \u5f39\u7c27 \u7684 \u516c\u8def \u5361\u8f66 \u3002 \u7a7a\u6c14 \u5f39\u7c27 \u548c \u87ba\u65cb \u5f39\u7c27 \u87ba\u65cb\u5f39\u7c27 \u9700\u8981 \u7531 \u8fde\u6746 \u5f15\u5bfc \u7684 \u60ac\u67b6 \u3002 \u53c2\u89c1 ChSolidThreeLinkAxle \u548c SolidThreeLinkAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u5e26 \u6447\u81c2 \u7684 \u5b9e\u5fc3 \u4e09 \u8fde\u6746 \u8f74 \u7528\u4f5c MAN 5t \u3001 MAN 7t \u548c MAN 10t \u5361\u8f66 \u578b\u53f7 \u7684 \u60ac\u67b6 \u524d\u60ac\u67b6 \u3002 \u53c2\u89c1 ChSolidBellcrankThreeLinkAxle \u548c SolidBellcrankThreeLinkAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u677f\u7c27 \u5b9e\u5fc3 \u8f74 \u7528\u4f5c UAZ \u8f66\u578b \u7684 \u540e \u60ac\u67b6 \u3002 \u677f\u7c27 \u8f74 \u5177\u6709 \u590d\u6742 \u7684 \u5bfc\u5411 \u884c\u4e3a \u3002 \u8fd9\u662f \u4e00\u79cd \u6a21\u62df \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u5176\u4e2d \u677f\u7c27 \u7684 \u5bfc\u5411 \u6548\u679c \u901a\u8fc7 \u8f74\u7ba1 \u4e2d\u5fc3 \u7684 \u7279\u6b8a \u63a5\u5934 \u6a21\u62df \u3002 \u60ac\u67b6 \u6548\u679c \u7531 \u87ba\u65cb \u5f39\u7c27 \u87ba\u65cb\u5f39\u7c27 \u6a21\u62df \u3002 \u6eda\u52a8 \u884c\u4e3a \u63a5\u8fd1 \u771f\u5b9e \u7684 \u677f\u7c27 \u8f74 \u3002 \u53c2\u89c1 ChLeafspringAxle \u548c LeafspringAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u5e26\u8dbe\u6746 \u7684 \u677f\u7c27 \u5b9e\u5fc3 \u8f74 \u7528\u4f5c UAZ \u8f66\u578b \u7684 \u60ac\u67b6 \u524d\u60ac\u67b6 \u3002 \u53c2\u89c1 ChToeBarLeafspringAxle \u548c ToeBarLeafspringAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a SAE \u677f\u7c27 \u5b9e\u5fc3 \u8f74 SAE \u5f39\u7c27 \u8bbe\u8ba1 \u624b\u518c \u4ecb\u7ecd \u4e86 \u4e00\u79cd \u5728 \u8d1f\u8f7d \u6761\u4ef6 \u4e0b \u5177\u6709 \u771f\u5b9e \u53d8\u5f62 \u884c\u4e3a \u7684 \u677f\u7c27 \u5efa\u6a21 \u65b9\u6cd5 \u3002 \u677f\u7c27 \u7684 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u53ef\u4ee5 \u7528 5 \u4e2a\u70b9 \u6765 \u5b9a\u4e49 \u3002 \u8fd9\u4e9b \u70b9 \u53ef \u7528\u4e8e \u5b9a\u4e49 \u7531 6 \u4e2a \u521a\u4f53 \uff08 \u524d \u677f\u7c27 \u3001 \u524d \u5939\u94b3 \u3001 \u540e \u5939\u94b3 \u3001 \u540e \u677f\u7c27 \u548c \u5378 \u6263 \uff09 \u7ec4\u6210 \u7684 \u677f\u7c27 \u3002 \u8fd9\u4e9b \u521a\u4f53 \u901a\u8fc7 \u5173\u8282 \u8fde\u63a5 \u3002 \u524d \u677f\u7c27 \u548c \u540e \u677f\u7c27 \u4ee5\u53ca \u524d \u5939\u94b3 \u548c \u540e \u5939\u94b3 \u7684 \u65cb\u8f6c \u5f39\u7c27 \u5177\u6709 \u65cb\u8f6c \u521a\u5ea6 \uff0c \u7528\u6237 \u53ef\u4ee5 \u8bbe\u7f6e \u8be5 \u521a\u5ea6 \u4ee5 \u5b9a\u4e49 \u6b63\u786e \u7684 \u884c\u4e3a \u3002 \u8be5 \u60ac\u67b6 \u7528\u4f5c UAZ \u8f66\u8f86 SAE \u578b \u6a21\u578b \u7684 \u540e \u60ac\u67b6 \u3002 \u8be5 \u677f\u7c27 \u6a21\u578b \u53ef\u4ee5 \u6b63\u786e \u6a21\u62df \u7531\u4e8e \u8f66\u8f6e \u884c\u9a76 \u800c \u5f15\u8d77 \u7684 \u8f74\u4f53 \u8fd0\u52a8 \u4ee5\u53ca \u7531\u4e8e \u7eb5\u5411 \u529b\u800c \u5f15\u8d77 \u7684 \u675f\u7f1a \u6548\u5e94 \u3002 \u53c2\u89c1 ChSAELeafspringAxle \u548c SAELeafspringAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u5e26\u8dbe\u6746 \u7684 SAE \u677f\u7c27 \u5b9e\u5fc3 \u8f74 \u7528\u4f5c UAZ SAE \u578b \u8f66\u578b \u7684 \u60ac\u67b6 \u524d\u60ac\u67b6 \u3002 \u677f\u7c27 \u5b9a\u4e49 \u4e0e SAE \u677f\u7c27 \u8f74 \u76f8\u540c \u3002 \u53c2\u89c1 ChSAEToeBarLeafspringAxle \u548c SAEToeBarLeafspringAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u4e09 \u8fde\u6746 \u72ec\u7acb \u540e \u60ac\u67b6 \u4e09 \u8fde\u6746 \u72ec\u7acb \u540e \u60ac\u67b6 ( IRS ) \uff0c \u5982 Polaris RZR \u8f66\u8f86 \u4e0a \u6240\u89c1 \u3002 \u53c2\u89c1 ChThreeLinkIRS \u548c ThreeLinkIRS \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u521a\u6027 \u60ac\u6302 \u7b80\u5355 \u7ec4\u88c5 \uff0c \u4e3b\u8f74 \u76f4\u63a5 \u8fde\u63a5 \u5230\u8f74\u7ba1 \u4e0a \uff0c \u8f74\u7ba1 \u56fa\u5b9a \u5728 \u5e95\u76d8 \u4e0a \u3002 \u8fd9\u662f \u519c\u7528 \u62d6\u62c9 \u62d6\u62c9\u673a \u548c \u8054\u5408 \u6536\u5272 \u5272\u673a \u6536\u5272\u673a \u7684 \u5178\u578b \u88c5\u914d \u3002 \u53c2\u89c1 ChRigidSuspension \u548c RigidSuspension \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u521a\u6027 \u9500\u8f74 \u7b80\u5355 \u7ec4\u4ef6 \uff0c \u4e3b\u8f74 \u76f4\u63a5 \u8fde\u63a5 \u5230\u8f74\u7ba1 \u4e0a \uff0c \u53ef\u4ee5 \u56f4\u7ed5 \u67a2\u8f74 \u70b9 \u6446\u52a8 \uff0c \u62b5\u9760 \u5e95\u76d8 \u3002 \u5982\u679c \u9700\u8981 \u975e \u60ac\u6302 \u8f74 \u7cfb\u7edf \uff0c \u4f46 \u53c8 \u5fc5\u987b \u5728 \u8d77\u4f0f \u7684 \u5730\u5f62 \u4e0a \u884c\u9a76 \u4ee5 \u907f\u514d \u8f66\u8f6e \u62ac\u8d77 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u7ec4\u4ef6 \u3002 \u53c2\u89c1 ChRigidPinnedAxle \u548c RigidPinnedAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a \u901a\u7528 \u8f6e\u5f0f \u8f66\u8f86 \u60ac\u67b6 \u6a21\u677f \u6b64 \u6a21\u677f \u5141\u8bb8 \u6307\u5b9a \u5177\u6709 \u4efb\u610f \u62d3\u6251 \u7684 \u7528\u6237 \u5b9a\u4e49 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac \u67b6\u5b50 \u7cfb\u7edf \u3002 \u901a\u8fc7 \u6dfb\u52a0 \u4e3b\u4f53 \u3001 \u5173\u8282 \u3001 \u8ddd\u79bb \u7ea6\u675f \u548c TSDA \u6765 \u6784\u5efa \u5177\u4f53 \u7684 \u60ac\u67b6 \u3002 \u6bcf\u4e2a \u5efa\u6a21 \u7ec4\u4ef6 \u90fd \u53ef\u4ee5 \u6807\u8bb0 \u4e3a \u201c \u955c\u50cf \u201d \u3002 \u7528\u6237 \u8d1f\u8d23 \u5b9a\u4e49 \u6240\u6709 \u975e \u955c\u50cf \u7ec4\u4ef6 \u548c \u5de6\u4fa7 \u955c\u50cf \u7ec4\u4ef6 \uff08 \u76f8\u5e94 \u7684 \u53f3\u4fa7 \u7ec4\u4ef6 \u4f1a \u81ea\u52a8 \u751f\u6210 \uff09 \u3002 \u53c2\u89c1 ChGenericWheeledSuspension \u548c GenericWheeledSuspension \u3002","title":"\u60ac\u6302 \u6a21\u578b"},{"location":"chrono/wheeled_suspension/#_1","text":"\u60ac \u67b6\u5b50 \u7cfb\u7edf \u662f \u8f6e\u5f0f \u8f66\u8f86 \u7684 \u4e00\u4e2a \u8f74 \u7684 \u6a21\u578b \u3002 \u57fa\u7c7b ChSuspension \u89c4\u5b9a \uff0c \u4efb\u4f55 \u6d3e\u751f \u7684 \u60ac\u67b6 \u7c7b \uff08 \u60ac\u67b6 \u6a21\u677f \uff09 \u90fd \u63d0\u4f9b \u4e24\u4e2a \u8f66\u8f6e \u4e3b\u8f74 \uff08 \u5de6\u548c\u53f3 \uff09 \uff0c \u6bcf\u4e2a \u8f66\u8f6e \u4e3b\u8f74 \u901a\u8fc7 \u65cb\u8f6c \u63a5\u5934 \u8fde\u63a5 \u5230 \u8be5 \u7c7b\u578b \u60ac\u67b6 \u7684 \u67d0\u4e2a \u90e8\u5206 \uff0c \u4ee5\u53ca \u4e24\u4e2a \u4e3b\u8f74 \u8f74 \uff08 ChShaft \u7c7b\u578b \u7684 \u5143\u7d20 \uff09 \uff0c \u5982\u679c \u8be5 \u8f74 \u88ab \u9a71\u52a8 \uff0c \u5219 \u53ef \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u3002 \u6d3e\u751f \u60ac\u67b6 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u4e86 \u7279\u5b9a \u7c7b\u578b \u60ac\u67b6 \u7684 \u4e3b\u4f53 \u3001 \u5173\u8282 \u3001 \u529b \u5143\u7d20 \u548c \u62d3\u6251 \u7ed3\u6784 \u3002 \u6240\u6709 \u4f4d\u7f6e \u5747 \u5047\u5b9a \u76f8\u5bf9 \u4e8e \u60ac\u67b6 \u53c2\u8003 \u53c2\u8003\u7cfb \u63d0\u4f9b \uff08 \u6d3e\u751f \u60ac\u67b6 \u7c7b\u578b \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u6b64 \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u4f4d\u7f6e \uff0c \u4f46 \u4e0d\u80fd \u9009\u62e9 \u5176 \u65b9\u5411 \uff0c \u5047\u5b9a \u65b9\u5411 \u4e0e \u5e95\u76d8 ISO \u53c2\u8003 \u53c2\u8003\u7cfb \u5e73\u884c \uff09 \u3002 \u901a\u8fc7 \u6307\u5b9a \u60ac\u67b6 \u7ec4\u4ef6 \u53c2\u8003 \u53c2\u8003\u7cfb \u76f8\u5bf9 \u4e8e \u5e95\u76d8 \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u4f4d\u7f6e \uff08 \u53c2\u89c1 ISO \u53c2\u8003 \u53c2\u8003\u7cfb \u7684 \u5b9a\u4e49 \uff09 \uff0c \u5c06 \u60ac\u67b6 \u7ec4\u4ef6 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u5e95\u76d8 \u4e0a \u3002","title":"\u60ac\u6302 \u6a21\u578b"},{"location":"chrono/wheeled_suspension/#_2","text":"\u72ec\u7acb \u64cd\u7eb5 \u53ef\u64cd\u7eb5 \u60ac\u67b6 \uff0c \u4f7f\u7528 \u4e24\u4e2a \u53c9\u81c2 \u63a7\u5236 \u81c2 \uff08 \u4e5f \u79f0\u4e3a A \u81c2 \uff09 \u8fde\u63a5 \u8f6c\u5411 \u8f6c\u5411\u8282 \u548c \u5e95\u76d8 \u3002 \u7528\u4f5c HMMWV \u8f66\u8f86 \u6a21\u578b \u7684 \u60ac\u67b6 \u524d\u60ac\u67b6 \u548c \u540e \u60ac\u67b6 \u3002 \u53c2\u89c1 ChDoubleWishbone \u548c DoubleWishbone \u3002 \uff08 wishbone \u53c9 \u9aa8 \uff0c \u5982\u613f \u9aa8 \uff08 \u5403 \u5bb6\u79bd \u7b49 \u65f6 \u4e24\u4eba \u5c06 \u9888 \u4e0e \u80f8 \u4e4b\u95f4 \u7684 V \u5f62\u9aa8 \u62c9\u5f00 \uff0c \u5f97 \u5927\u5757 \u9aa8\u8005 \u53ef \u8bb8\u613f \uff09 \uff09 \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u53cc\u53c9\u81c2"},{"location":"chrono/wheeled_suspension/#_3","text":"\u8fd9\u79cd \u7b80\u5316 \u7684 \u53cc\u53c9\u81c2 \u60ac\u67b6 \u6a21\u677f \u4f7f\u7528 \u4e24\u4e2a \u8ddd\u79bb \u7ea6\u675f \u6765 \u6a21\u62df \u4e0b \u63a7\u5236 \u81c2 \u548c \u4e0a \u63a7\u5236 \u81c2 \u3002 \u5f53 \u63a7\u5236 \u81c2 \u7684 \u8d28\u91cf \u548c \u60ef\u6027 \u76f8\u5bf9 \u4e8e \u7cfb\u7edf \u4e2d \u7684 \u5176\u4ed6 \u7269\u4f53 \u8f83 \u5c0f \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5ffd\u7565 \u4e0d\u8ba1 \u5ffd\u7565\u4e0d\u8ba1 \u65f6 \uff0c \u8fd9\u79cd \u60ac\u67b6 \u7c7b\u578b \u662f \u5408\u9002 \u7684 \u3002 \u53c2\u89c1 ChDoubleWishboneReduced \u548c DoubleWishboneReduced \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u53cc\u53c9\u81c2 \uff08 \u7b80\u5316 \uff09"},{"location":"chrono/wheeled_suspension/#_4","text":"\u53ef \u8f6c\u5411 \u72ec\u7acb \u60ac\u67b6 \u7cfb\u7edf \uff0c \u9002\u7528 \u4e8e \u524d\u8f6e \u9a71\u52a8 \u524d\u8f6e\u9a71\u52a8 \u3001 \u6a2a\u5411 \u5b89\u88c5 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a / \u53d8\u901f \u53d8\u901f\u7bb1 \u7684 \u4e2d\u5c0f \u5c0f\u578b \u4e2d\u5c0f\u578b \u7528\u8f66 \u4e58\u7528\u8f66 \u3002 \u53c2\u89c1 ChMacPhersonStrut \u548c MacPhersonStrut \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u9ea6\u5f17\u900a \u652f\u67f1"},{"location":"chrono/wheeled_suspension/#_5","text":"\u8be5 \u60ac\u67b6 \u7cfb\u7edf \u7c7b\u4f3c \u4e8e \u53cc\u53c9\u81c2 \u8f74 \uff0c \u62d6\u66f3 \u81c2 \u53ef\u4ee5 \u627f\u53d7 \u8f83\u5927 \u7684 \u7eb5\u5411 \u529b \u3002 \u53c2\u89c1 ChMultiLink \u548c MultiLink \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u591a \u8fde\u6746"},{"location":"chrono/wheeled_suspension/#_6","text":"\u5c0f\u578b \u7528\u8f66 \u4e58\u7528\u8f66 \u91c7\u7528 \u7b80\u5355 \u7684 \u72ec\u7acb \u8f74 \u7cfb\u7edf \u4f5c\u4e3a \u540e \u60ac\u67b6 \u3002 \u53c2\u89c1 ChSemiTrailingArm \u548c SemiTrailingArm \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u534a \u62d6\u66f3 \u81c2"},{"location":"chrono/wheeled_suspension/#_7","text":"\u7531 \u56db\u4e2a \u8fde\u6746 \u5f15\u5bfc \u7684 \u5b9e\u5fc3 \u8f74 \u7cfb\u7edf \u3002 \u5b83 \u901a\u5e38 \u4f7f\u7528 \u87ba\u65cb \u5f39\u7c27 \u87ba\u65cb\u5f39\u7c27 \u6216 \u7a7a\u6c14 \u5f39\u7c27 \uff0c \u5e38\u89c1 \u89c1\u4e8e \u5e38\u89c1\u4e8e \u8f83 \u65e7 \u7684 \u7528\u8f66 \u4e58\u7528\u8f66 \u3002 \u53c2\u89c1 ChSolidAxle \u548c SolidAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u5b9e\u5fc3 \u8f74"},{"location":"chrono/wheeled_suspension/#_8","text":"\u7528\u4f5c MAN 5t \u3001 MAN 7t \u548c MAN 10t \u5361\u8f66 \u578b\u53f7 \u7684 \u540e \u60ac\u67b6 \u3002 \u8fd9\u79cd \u60ac\u67b6 \u5141\u8bb8 \u975e\u5e38 \u9ad8 \u7684 \u8f66\u8f6e \u884c\u7a0b \uff0c \u8fd9\u662f \u677f\u7c27 \u65e0\u6cd5 \u5b9e\u73b0 \u7684 \u3002 \u5b83 \u4e5f \u7528\u4e8e \u5e26\u6709 \u7a7a\u6c14 \u5f39\u7c27 \u7684 \u516c\u8def \u5361\u8f66 \u3002 \u7a7a\u6c14 \u5f39\u7c27 \u548c \u87ba\u65cb \u5f39\u7c27 \u87ba\u65cb\u5f39\u7c27 \u9700\u8981 \u7531 \u8fde\u6746 \u5f15\u5bfc \u7684 \u60ac\u67b6 \u3002 \u53c2\u89c1 ChSolidThreeLinkAxle \u548c SolidThreeLinkAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u5b9e\u5fc3 \u4e09 \u8fde\u6746 \u8f74"},{"location":"chrono/wheeled_suspension/#_9","text":"\u7528\u4f5c MAN 5t \u3001 MAN 7t \u548c MAN 10t \u5361\u8f66 \u578b\u53f7 \u7684 \u60ac\u67b6 \u524d\u60ac\u67b6 \u3002 \u53c2\u89c1 ChSolidBellcrankThreeLinkAxle \u548c SolidBellcrankThreeLinkAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u5e26 \u6447\u81c2 \u7684 \u5b9e\u5fc3 \u4e09 \u8fde\u6746 \u8f74"},{"location":"chrono/wheeled_suspension/#_10","text":"\u7528\u4f5c UAZ \u8f66\u578b \u7684 \u540e \u60ac\u67b6 \u3002 \u677f\u7c27 \u8f74 \u5177\u6709 \u590d\u6742 \u7684 \u5bfc\u5411 \u884c\u4e3a \u3002 \u8fd9\u662f \u4e00\u79cd \u6a21\u62df \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u5176\u4e2d \u677f\u7c27 \u7684 \u5bfc\u5411 \u6548\u679c \u901a\u8fc7 \u8f74\u7ba1 \u4e2d\u5fc3 \u7684 \u7279\u6b8a \u63a5\u5934 \u6a21\u62df \u3002 \u60ac\u67b6 \u6548\u679c \u7531 \u87ba\u65cb \u5f39\u7c27 \u87ba\u65cb\u5f39\u7c27 \u6a21\u62df \u3002 \u6eda\u52a8 \u884c\u4e3a \u63a5\u8fd1 \u771f\u5b9e \u7684 \u677f\u7c27 \u8f74 \u3002 \u53c2\u89c1 ChLeafspringAxle \u548c LeafspringAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u677f\u7c27 \u5b9e\u5fc3 \u8f74"},{"location":"chrono/wheeled_suspension/#_11","text":"\u7528\u4f5c UAZ \u8f66\u578b \u7684 \u60ac\u67b6 \u524d\u60ac\u67b6 \u3002 \u53c2\u89c1 ChToeBarLeafspringAxle \u548c ToeBarLeafspringAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u5e26\u8dbe\u6746 \u7684 \u677f\u7c27 \u5b9e\u5fc3 \u8f74"},{"location":"chrono/wheeled_suspension/#sae","text":"SAE \u5f39\u7c27 \u8bbe\u8ba1 \u624b\u518c \u4ecb\u7ecd \u4e86 \u4e00\u79cd \u5728 \u8d1f\u8f7d \u6761\u4ef6 \u4e0b \u5177\u6709 \u771f\u5b9e \u53d8\u5f62 \u884c\u4e3a \u7684 \u677f\u7c27 \u5efa\u6a21 \u65b9\u6cd5 \u3002 \u677f\u7c27 \u7684 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u53ef\u4ee5 \u7528 5 \u4e2a\u70b9 \u6765 \u5b9a\u4e49 \u3002 \u8fd9\u4e9b \u70b9 \u53ef \u7528\u4e8e \u5b9a\u4e49 \u7531 6 \u4e2a \u521a\u4f53 \uff08 \u524d \u677f\u7c27 \u3001 \u524d \u5939\u94b3 \u3001 \u540e \u5939\u94b3 \u3001 \u540e \u677f\u7c27 \u548c \u5378 \u6263 \uff09 \u7ec4\u6210 \u7684 \u677f\u7c27 \u3002 \u8fd9\u4e9b \u521a\u4f53 \u901a\u8fc7 \u5173\u8282 \u8fde\u63a5 \u3002 \u524d \u677f\u7c27 \u548c \u540e \u677f\u7c27 \u4ee5\u53ca \u524d \u5939\u94b3 \u548c \u540e \u5939\u94b3 \u7684 \u65cb\u8f6c \u5f39\u7c27 \u5177\u6709 \u65cb\u8f6c \u521a\u5ea6 \uff0c \u7528\u6237 \u53ef\u4ee5 \u8bbe\u7f6e \u8be5 \u521a\u5ea6 \u4ee5 \u5b9a\u4e49 \u6b63\u786e \u7684 \u884c\u4e3a \u3002 \u8be5 \u60ac\u67b6 \u7528\u4f5c UAZ \u8f66\u8f86 SAE \u578b \u6a21\u578b \u7684 \u540e \u60ac\u67b6 \u3002 \u8be5 \u677f\u7c27 \u6a21\u578b \u53ef\u4ee5 \u6b63\u786e \u6a21\u62df \u7531\u4e8e \u8f66\u8f6e \u884c\u9a76 \u800c \u5f15\u8d77 \u7684 \u8f74\u4f53 \u8fd0\u52a8 \u4ee5\u53ca \u7531\u4e8e \u7eb5\u5411 \u529b\u800c \u5f15\u8d77 \u7684 \u675f\u7f1a \u6548\u5e94 \u3002 \u53c2\u89c1 ChSAELeafspringAxle \u548c SAELeafspringAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"SAE \u677f\u7c27 \u5b9e\u5fc3 \u8f74"},{"location":"chrono/wheeled_suspension/#sae_1","text":"\u7528\u4f5c UAZ SAE \u578b \u8f66\u578b \u7684 \u60ac\u67b6 \u524d\u60ac\u67b6 \u3002 \u677f\u7c27 \u5b9a\u4e49 \u4e0e SAE \u677f\u7c27 \u8f74 \u76f8\u540c \u3002 \u53c2\u89c1 ChSAEToeBarLeafspringAxle \u548c SAEToeBarLeafspringAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u5e26\u8dbe\u6746 \u7684 SAE \u677f\u7c27 \u5b9e\u5fc3 \u8f74"},{"location":"chrono/wheeled_suspension/#_12","text":"\u4e09 \u8fde\u6746 \u72ec\u7acb \u540e \u60ac\u67b6 ( IRS ) \uff0c \u5982 Polaris RZR \u8f66\u8f86 \u4e0a \u6240\u89c1 \u3002 \u53c2\u89c1 ChThreeLinkIRS \u548c ThreeLinkIRS \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u4e09 \u8fde\u6746 \u72ec\u7acb \u540e \u60ac\u67b6"},{"location":"chrono/wheeled_suspension/#_13","text":"\u7b80\u5355 \u7ec4\u88c5 \uff0c \u4e3b\u8f74 \u76f4\u63a5 \u8fde\u63a5 \u5230\u8f74\u7ba1 \u4e0a \uff0c \u8f74\u7ba1 \u56fa\u5b9a \u5728 \u5e95\u76d8 \u4e0a \u3002 \u8fd9\u662f \u519c\u7528 \u62d6\u62c9 \u62d6\u62c9\u673a \u548c \u8054\u5408 \u6536\u5272 \u5272\u673a \u6536\u5272\u673a \u7684 \u5178\u578b \u88c5\u914d \u3002 \u53c2\u89c1 ChRigidSuspension \u548c RigidSuspension \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u521a\u6027 \u60ac\u6302"},{"location":"chrono/wheeled_suspension/#_14","text":"\u7b80\u5355 \u7ec4\u4ef6 \uff0c \u4e3b\u8f74 \u76f4\u63a5 \u8fde\u63a5 \u5230\u8f74\u7ba1 \u4e0a \uff0c \u53ef\u4ee5 \u56f4\u7ed5 \u67a2\u8f74 \u70b9 \u6446\u52a8 \uff0c \u62b5\u9760 \u5e95\u76d8 \u3002 \u5982\u679c \u9700\u8981 \u975e \u60ac\u6302 \u8f74 \u7cfb\u7edf \uff0c \u4f46 \u53c8 \u5fc5\u987b \u5728 \u8d77\u4f0f \u7684 \u5730\u5f62 \u4e0a \u884c\u9a76 \u4ee5 \u907f\u514d \u8f66\u8f6e \u62ac\u8d77 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u7ec4\u4ef6 \u3002 \u53c2\u89c1 ChRigidPinnedAxle \u548c RigidPinnedAxle \u3002 \u8be5 \u60ac\u6302 \u6a21\u677f \u7684 \u62d3\u6251 \u7ed3\u6784 \u4e3a \uff1a \u786c\u70b9 \uff08 \u4ec5\u4e3a \u5de6\u4fa7 \u5b9a\u4e49 \u5e76 \u955c\u50cf \u6784\u5efa \u53f3\u4fa7 \uff09 \u662f \uff1a","title":"\u521a\u6027 \u9500\u8f74"},{"location":"chrono/wheeled_suspension/#_15","text":"\u6b64 \u6a21\u677f \u5141\u8bb8 \u6307\u5b9a \u5177\u6709 \u4efb\u610f \u62d3\u6251 \u7684 \u7528\u6237 \u5b9a\u4e49 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac \u67b6\u5b50 \u7cfb\u7edf \u3002 \u901a\u8fc7 \u6dfb\u52a0 \u4e3b\u4f53 \u3001 \u5173\u8282 \u3001 \u8ddd\u79bb \u7ea6\u675f \u548c TSDA \u6765 \u6784\u5efa \u5177\u4f53 \u7684 \u60ac\u67b6 \u3002 \u6bcf\u4e2a \u5efa\u6a21 \u7ec4\u4ef6 \u90fd \u53ef\u4ee5 \u6807\u8bb0 \u4e3a \u201c \u955c\u50cf \u201d \u3002 \u7528\u6237 \u8d1f\u8d23 \u5b9a\u4e49 \u6240\u6709 \u975e \u955c\u50cf \u7ec4\u4ef6 \u548c \u5de6\u4fa7 \u955c\u50cf \u7ec4\u4ef6 \uff08 \u76f8\u5e94 \u7684 \u53f3\u4fa7 \u7ec4\u4ef6 \u4f1a \u81ea\u52a8 \u751f\u6210 \uff09 \u3002 \u53c2\u89c1 ChGenericWheeledSuspension \u548c GenericWheeledSuspension \u3002","title":"\u901a\u7528 \u8f6e\u5f0f \u8f66\u8f86 \u60ac\u67b6 \u6a21\u677f"},{"location":"chrono/wheeled_tire/","text":"\u8f6e\u80ce \u6a21\u578b Chrono : : Vehicle \u76ee\u524d \u652f\u6301 \u4e09\u79cd \u4e0d\u540c \u7c7b\u522b \u7684 \u8f6e\u80ce \u6a21\u578b \uff1a \u521a\u6027 \u3001 \u64cd\u63a7 \u548c \u6709\u9650 \u6709\u9650\u5143 \u3002 \u521a\u6027 \u8f6e\u80ce \u6a21\u578b \u5904\u7406 \uff08 \u534a \u7ecf\u9a8c \uff09 \u8f6e\u80ce \u6a21\u578b \u521a\u6027 \u8f6e\u80ce \u662f \u63d0\u4f9b \u7684 \u4e09\u79cd \u8f6e\u80ce \u7c7b\u522b \u4e2d \u6700 \u7b80\u5355 \u7684 \u4e00\u79cd \u3002 \u8fd9\u4e9b \u6a21\u578b \u7684 \u5047\u8bbe \u662f \u8f6e\u80ce \u5b8c\u5168 \u521a\u6027 \uff0c \u5e76\u4e14 \u5b83 \u901a\u8fc7 \u4e0e Chrono \u4e2d \u5176\u4ed6 \u521a\u4f53 \u76f8\u540c \u7684 \u5e95\u5c42 \u6469\u64e6 \u548c \u63a5\u89e6 \u7b97\u6cd5 \u4e0e \u5730\u9762 \u548c \u4efb\u4f55 \u5176\u4ed6 \u521a\u6027 \u7269\u4f53 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u8fd9\u4e9b \u8f6e\u80ce \u7684 \u63a5\u89e6 \u51e0\u4f55 \u5f62\u72b6 \u53ef\u4ee5 \u50cf \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u4e00\u6837 \u7b80\u5355 \uff0c \u4e5f \u53ef\u4ee5 \u50cf 3D \u4e09\u89d2 \u7f51\u683c \u4e00\u6837 \u590d\u6742 \u3002 \u8fd9\u4e9b \u6a21\u578b \u4e0d\u4ec5 \u53ef \u7528\u4e8e \u8c03\u8bd5 \u6574\u4f53 \u8f66\u8f86 \u6a21\u578b \uff0c \u800c\u4e14 \u8fd8 \u53ef \u7528\u4e8e \u8fd0\u884c \u65f6 \u5f88 \u91cd\u8981 \u3001 \u5730\u5f62 \u6bd4 \u8f6e\u80ce \u8f6f\u5f97 \u591a\u4e14 \u4e0d \u9700\u8981 \u9ad8\u5ea6 \u8be6\u7ec6 \u7684 \u8f6e\u80ce \u6a21\u578b \u7684 \u60c5\u51b5 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u4e0d \u9002\u5408 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u6a21\u62df \uff0c \u5373 \u4f7f\u7528 \u53ef \u53d8\u5f62 \u5730\u5f62 \uff08 SCM \u3001 \u7c92\u72b6 \u6216 \u57fa\u4e8e FEA \uff1b \u53c2\u9605 \u8bf7\u53c2\u9605 \u53ef\u7528 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u7684 \u63cf\u8ff0 \uff09 \u3002 \u5bf9\u4e8e \u6b64\u7c7b \u573a\u666f \uff0c \u521a\u6027 \u6216 \u57fa\u4e8e FEA \u7684 \u8f6e\u80ce \u6a21\u578b \u662f \u76ee\u524d \u5728 Chrono : : Vehicle \u4e2d \u5b9e\u73b0 \u7684 \u4ec5 \u6709 \u7684 \u4e24\u4e2a \u53ef\u7528 \u9009\u9879 \u3002 \u53c2\u89c1 ChRigidTire \u548c RigidTire \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 Wavefront OBJ \u6587\u4ef6 \u63d0\u4f9b \u7f51\u683c \u51e0\u4f55 \u5f62\u72b6 \u7684 \u521a\u6027 \u8f6e\u80ce \u7684 \u793a\u4f8b \uff1a { \" Name \" : \" HMMWV Rigid Mesh Tire \" , \" Type \" : \" Tire \" , \" Template \" : \" RigidTire \" , \" Radius \" : 0.4699 , \" Width \" : 0.254 , \" Mass \" : 37.6 , \" Inertia \" : [ 3.84 , 6.69 , 3.84 ] , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.1 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Contact Mesh \" : { \" Mesh Filename \" : \" hmmwv / hmmwv _ tire _ fine . obj \" , \" Sweep Sphere Radius \" : 0.005 } , \" Visualization \" : { \" Mesh Filename Left \" : \" hmmwv / hmmwv _ tire _ fine . obj \" , \" Mesh Filename Right \" : \" hmmwv / hmmwv _ tire _ fine . obj \" } } \u5904\u7406 \uff08 \u534a \u7ecf\u9a8c \uff09 \u8f6e\u80ce \u6a21\u578b \u63d0\u4f9b \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u8f6e\u80ce \u6a21\u578b \u662f \u5e38\u7528 \u4e8e \u8f66\u8f86 \u64cd\u63a7 \u7684 \u534a \u7ecf\u9a8c \u6a21\u578b \u3002 Chrono : : Vehicle \u76ee\u524d \u5df2 \u5b9e\u73b0 Pacejka \uff08 89 \u548c 2002 \uff09 \u3001 TMeasy \u548c Fiala \u8f6e\u80ce \u6a21\u578b \u3002 \u64cd\u63a7 \u8f6e\u80ce \u6a21\u578b \u4e13 \u4e3a \u5e73\u5766 \u8def\u9762 \u800c \u8bbe\u8ba1 \uff0c \u901a\u5e38 \u4f7f\u7528 \u5355 \u63a5\u89e6 \u70b9\u63a5\u89e6 \u6216 \u56db\u70b9 \u63a5\u89e6 \uff08 TMeasy \uff09 \u3002 \u5bf9\u4e8e \u5728 \u8d77\u4f0f \u8def\u9762 \u4e0a \u8fdb\u884c \u884c\u9a76 \u6d4b\u8bd5 \u6216 \u8d8a\u969c \uff0c \u5df2 \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u79f0\u4e3a \u201c \u5305\u7edc \u201d \u7684 \u7279\u6b8a \u63a5\u89e6 \u7b97\u6cd5 \u3002 \u5b83 \u57fa\u4e8e Sui \u548c Hershey \u7684 \u8bba\u6587 \uff0c \u53ef \u7528\u4e8e Chrono \u4e2d \u5305\u542b \u7684 \u6240\u6709 \u64cd\u63a7 \u8f6e\u80ce \u6a21\u578b \u3002 \u4f7f\u7528 \u6280\u672f \u6f14\u793a \u5668 \u8fdb\u884c \u7684 \u9a8c\u8bc1 \u6d4b\u8bd5 \u4e0e \u6d4b\u91cf \u7684 \u771f\u5b9e \u8f66\u8f86 \u6d4b\u8bd5 \u6570\u636e \u6d4b\u8bd5\u6570\u636e \u76f8\u6bd4 \uff0c \u7ed3\u679c \u826f\u597d \uff0c \u800c\u4e14 \u6570\u503c \u5de5\u4f5c \u5de5\u4f5c\u91cf \u8f83 \u5c11 \u3002 \u5982\u679c \u9700\u8981 \u66f4 \u9ad8 \u7684 \u7cbe\u5ea6 \uff0c \u7528\u6237 \u5e94\u8be5 \u8003\u8651 \u8003\u8651 \u57fa\u4e8e FEA \u7684 \u8f6e\u80ce \u6a21\u578b \u8fdb\u884c \u975e \u64cd\u63a7 \u6d4b\u8bd5 \u3002 \u6709\u4e9b \u7528\u6237 \u53ef\u80fd \u5e0c\u671b \u6839\u636e \u8f6e\u80ce \u6d4b\u8bd5 \u6570\u636e \u6d4b\u8bd5\u6570\u636e \u6784\u5efa \u81ea\u5df1 \u7684 \u64cd\u63a7 \u8f6e\u80ce \u53c2\u6570 \u96c6 \u3002 \u52a1\u5fc5 \u719f\u6089 \u6bcf\u4e2a \u8f6e\u80ce \u6a21\u578b \u4e2d \u7684 \u4e0d\u540c \u6ed1\u79fb \u5b9a\u4e49 \u548c \u4e0d\u540c \u5750\u6807 \u5750\u6807\u7cfb \uff01 Pacejka 89 \uff08 Pac89 \uff09 \u8f6e\u80ce \u6a21\u578b \u53c2\u89c1 ChPac89Tire \u548c Pac89Tire \u3002 Pacejka 2002 \uff08 Pac02 \uff09 \u8f6e\u80ce \u6a21\u578b \u8be5 \u6a21\u578b \u662f Pacejka \u65e9\u671f Magic Formula \u8f6e\u80ce \u6a21\u578b \u7684 \u6269\u5c55 \uff0c \u589e\u52a0 \u4e86 \u65b9\u7a0b \u548c \u7cfb\u6570 \u3002 \u7531\u4e8e \u5728 \u7a33\u6001 \u6ed1\u79fb \u6761\u4ef6 \u4e0b \u4e0d\u4f1a \u53d1\u751f \u5927\u91cf \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u64cd\u4f5c \uff0c \u56e0\u6b64 \u5305\u62ec \u63a5\u89e6 \u63a5\u89e6\u9762 \u6ed1\u79fb \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff0c \u4ee5\u4fbf \u5728 \u77ac\u6001 \u6761\u4ef6 \u4e0b \u63d0\u4f9b \u66f4 \u51c6\u786e \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u7f3a\u4e4f \u53c2\u8003 \u6570\u636e \u96c6 \uff0c \u5145\u6c14 \u538b\u529b \u4f9d\u8d56 \u9879\u548c\u5927\u5916 \u503e\u89d2 \u9879 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u5b9e\u73b0 \u3002 \u6b64 Chrono \u8f6e\u80ce \u6a21\u578b \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4e0e Adams / Car \u517c\u5bb9 \u7684 TIR \u6587\u4ef6 \u6765 \u6307\u5b9a \u3002 \u53c2\u89c1 ChPac02Tire \u548c Pac02Tire \u3002 TMeasy \u8f6e\u80ce \u6a21\u578b \uff08 \u57fa\u7840 \u7248 \uff09 TMeasy \uff08 \u8f6e\u80ce \u6a21\u578b \u7b80\u6613 \u7b80\u6613\u7248 \uff09 \u7531 Georg Rill \u6559\u6388 \u5f00\u53d1 \uff0c \u53ef \u4f5c\u4e3a \u5546\u4e1a \u4ee3\u7801 \u4f7f\u7528 \uff08 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 http : / / www . tmeasy . de / \uff09 \u3002 \u8be5 \u6a21\u578b \u7684 \u76ee\u7684 \u662f \u5141\u8bb8 \u8f7b\u677e \u53c2\u6570 \u5316 \u3002 \u5176 \u590d\u6742 \u590d\u6742\u6027 \u5927\u81f4 \u4e0e \u57fa\u4e8e Magic Formula \u7684 \u6a21\u578b \u76f8\u5f53 \u3002 \u6b64\u5916 \uff0c \u57fa\u4e8e \u5361\u8f66 \u548c \u7528\u8f66 \u4e58\u7528\u8f66 \u7684 \u5df2\u77e5 \u53c2\u6570 \u96c6 \uff0c \u53ef\u4ee5 \u4ece \u5c11\u91cf \u8f93\u5165 \u6570\u636e \u4e2d \u4f30\u8ba1 \u5b8c\u6574 \u7684 \u53c2\u6570 \u96c6 \u3002 TMeasy \u8003\u8651 \u7ebf\u6027 \u975e\u7ebf\u6027 \u6548\u5e94 \u5e76 \u5305\u62ec \u63a5\u89e6 \u63a5\u89e6\u9762 \u6ed1\u79fb \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u3002 \u4e0e \u6700\u65b0 \u7684 \u5546\u4e1a TMeasy \u7248\u672c \u76f8\u6bd4 \uff0c Chrono \u4e2d \u4f7f\u7528 \u7684 \u5b9e\u73b0 \u7f3a\u5c11 \u4e00\u4e9b \u529f\u80fd \u3002 \u4f8b\u5982 \uff0c \u6ca1\u6709 \u76ae\u5e26 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \uff0c \u4e5f \u65e0\u6cd5 \u8ba1\u7b97 \u52a8\u6001 \u505c\u8f66 \u626d\u77e9 \u3002 Chrono TMeasy \u8f6e\u80ce \u5b9e\u73b0 \u5305\u542b \u5df2 \u5728 Road Vehicle Dynamics - Fundamentals and Modeling with MATLAB \u4e00\u4e66\u4e2d \u53d1\u8868 \u7684 \u7b97\u6cd5 \uff0c Georg Rill \u548c Abel Arrieta Castro \uff0c CRC Press \uff0c 2020 \u5e74 \u3002 \u53c2\u89c1 ChTMeasyTire \u548c TMeasyTire \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5177\u6709 TMeasy \u8f6e\u80ce \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff1a { \" Name \" : \" HMMWV TMeasy Tire \" , \" Type \" : \" Tire \" , \" Template \" : \" TMeasyTire \" , / / ------------------------------------------------ / / Tire design ( REQUIRED ) \" Design \" : { \" Unloaded Radius [ m ] \" : 0.4699 , \" Mass [ kg ] \" : 37.6 , \" Inertia [ kg . m2 ] \" : [ 3.84 , 6.69 , 3.84 ] , \" Width [ m ] \" : 0.3175 , \" Rim Radius [ m ] \" : 0.2095 } , \" Coefficient of Friction \" : 0.8 , \" Rolling Resistance Coefficient \" : 0.015 , / / ------------------------------------------------ / / Vehicle type . / / Required only if tire specified with \" load index \" or \" bearing capacity \" . / / Must be one of \" Truck \" or \" Passenger \" \" Vehicle Type \" : \" Truck \" , / / ------------------------------------------------ / / Load index specification . / / Takes priority over \" bearing capacity \" ( used only if a full parameterization not provided ) \" Load Index \" : 108 , / / ------------------------------------------------ / / Bearing capacity specification . / / Lowest priority ( used only if no other specification provided ) \" Maximum Bearing Capacity [ N ] \" : 17167.5 , / / ------------------------------------------------ / / Visualization mesh ( OPTIONAL ) \" Visualization \" : { \" Mesh Filename Left \" : \" hmmwv / hmmwv _ tire _ left . obj \" , \" Mesh Filename Right \" : \" hmmwv / hmmwv _ tire _ right . obj \" } } Fiala \u8f6e\u80ce \u578b\u53f7 Chrono : : Vehicle \u4e2d \u5b9e\u73b0 \u7684 Fiala \u8f6e\u80ce \u6a21\u578b \u4e3b\u8981 \u57fa\u4e8e MSC ADAMS / \u8f6e\u80ce \u5e2e\u52a9 \u6587\u6863 \u4e2d \u4ecb\u7ecd \u7684 \u77ac\u6001 Fiala \u8f6e\u80ce \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u4f7f\u7528 \u8f6e\u80ce \u6ed1\u79fb \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6765 \u6539\u5584 \u6a21\u578b \u5728 \u4f4e\u901f \u81f3 \u96f6 \u524d\u8fdb \u901f\u5ea6 \u4e0b \u7684 \u884c\u4e3a \u3002 Fiala \u8f6e\u80ce \u6a21\u578b \u57fa\u4e8e \u5237\u5b50 \u6a21\u578b \u5047\u8bbe \uff0c \u53ea \u9700\u8981 \u5c11\u91cf \u7cfb\u6570 \u3002 \u8be5 \u8f6e\u80ce \u6a21\u578b \u5047\u8bbe \u8f6e\u80ce \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u5916 \u503e\u89d2 \u4e3a \u96f6 \uff0c \u5e76\u4e14 \u6ca1\u6709 \u4efb\u4f55 \u4ea7\u751f \u503e\u8986 \u529b\u77e9 \u7684 \u63aa\u65bd \u3002 \u4f46\u662f \uff0c \u5b83 \u5728 \u529b \u548c \u529b\u77e9 \u8ba1\u7b97 \u4e2d \u7ed3\u5408 \u4e86 \u8f6e\u80ce \u7684 \u6a2a\u5411 \u548c \u7eb5\u5411 \u6ed1\u79fb \u72b6\u6001 \uff0c \u4ece\u800c \u63d0\u4f9b \u4e86 \u66f4 \u771f\u5b9e \u7684 \u7ec4\u5408 \u6ed1\u79fb \u63cf\u8ff0 \u3002 Fiala \u8f6e\u80ce \u6a21\u578b \u4e0d \u5e94\u7528 \u4e8e \u4e25\u8083 \u7684 \u8f66\u8f86 \u64cd\u7eb5 \u6a21\u62df \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u8003\u8651 \u5f71\u54cd \u7ed3\u679c \u7684 \u91cd\u8981 \u5f71\u54cd \u3002 \u53c2\u89c1 ChFialaTire \u548c FialaTire \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5177\u6709 TMeasy \u8f6e\u80ce \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff1a { \" Name \" : \" HMMWV Fiala Tire \" , \" Type \" : \" Tire \" , \" Template \" : \" FialaTire \" , \" Mass \" : 37.6 , \" Inertia \" : [ 3.84 , 6.69 , 3.84 ] , \" Coefficient of Friction \" : 0.8 , \" Fiala Parameters \" : { \" Unloaded Radius \" : 0.47 , \" Width \" : 0.318 , \" Vertical Damping \" : 7500 , \" Vertical Stiffness \" : 326332 , / / linear stiffness ( if no curve table present ) \" Vertical Curve Data \" : / / nonlinear stifness ( has precedence over linear model ) [ [ 0.000 , 0 ] , [ 0.005 , 585 ] , [ 0.010 , 1286 ] , [ 0.015 , 2352 ] , [ 0.020 , 3477 ] , [ 0.025 , 4798 ] , [ 0.030 , 6190 ] , [ 0.035 , 7540 ] , [ 0.040 , 9027 ] , [ 0.045 , 10570 ] , [ 0.050 , 12139 ] , [ 0.055 , 13654 ] , [ 0.060 , 15368 ] , [ 0.065 , 16904 ] , [ 0.070 , 18469 ] , [ 0.075 , 20089 ] , [ 0.080 , 21699 ] ] , \" Rolling Resistance \" : 0.015 , \" CSLIP \" : 193929.0 , \" CALPHA \" : 50000.0 , \" UMIN \" : 0.5568 , \" UMAX \" : 0.9835 , \" X Relaxation Length \" : 2.0 , \" Y Relaxation Length \" : 2.0 } , \" Visualization \" : { \" Mesh Filename Left \" : \" hmmwv / hmmwv _ tire _ left . obj \" , \" Mesh Filename Right \" : \" hmmwv / hmmwv _ tire _ right . obj \" , \" Width \" : 0.318 } } \u4e0a\u8ff0 JSON \u6587\u4ef6 \u4e2d \u5d4c\u5165 \u7684 \u5782\u76f4 \u8d1f\u8f7d \u66f2\u7ebf \u5982\u4e0b \u6240\u793a \uff1a \u8f6e\u80ce \u64cd\u4f5c \u6a21\u578b \u9a8c\u8bc1 \u4e0b\u9762 \u6211\u4eec \u5c55\u793a \u4e86 \u9488\u5bf9 \u5bc6\u6b47\u6839 \u5bc6\u6b47\u6839\u5dde \u57fa\u5a01\u7eb3 \u7814\u7a76 \u4e2d\u5fc3 ( KRC ) \u4e3a FED - alpha \u8f66\u8f86 \u63d0\u4f9b \u7684 \u5b9e\u9a8c \u6570\u636e \u5bf9 3 \u4e2a Chrono : : Vehicle \u64cd\u63a7 \u8f6e\u80ce \u6a21\u578b \u8fdb\u884c \u7684 \u9a8c\u8bc1 \u7814\u7a76 \u3002 \u5728 \u8fd9\u4e2a \u79f0\u4e3a ( SSC ) \u7684 \u6d4b\u8bd5 \u4e2d Steady State Cornering \uff0c \u8f66\u8f86 \u4ee5 \u6240\u8c13 \u7684 \u201c \u963f\u514b \u963f\u514b\u66fc \u901f\u5ea6 \u201d \u5f00\u59cb \u6cbf \u5706\u5708 \u884c\u9a76 \u3002 \u8be5\u503c \u7ea6 \u4e3a 3 m / s \uff0c \u56e0\u6b64 \u6ed1\u79fb \u503c \u975e\u5e38 \u5c0f \uff0c \u8f66\u8f86 \u5728 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u4e0a \u8ddf\u968f \u5706\u5708 \u884c\u9a76 \u3002 \u771f\u6b63 \u7684 \u6d4b\u8bd5 \u7ee7\u7eed \u9010\u6b65 \u589e\u52a0 \u8f66\u901f \u5e76 \u4fdd\u6301 \u6052\u5b9a \u3002 \u8fd9\u4e9b \u8fde\u7eed \u7684 \u901f\u5ea6 \u589e\u52a0 \u6b65\u9aa4 \u91cd\u590d \u8fdb\u884c \uff0c \u76f4\u5230 \u8fbe\u5230 \u6700\u5927 \u53ef\u80fd \u7684 \u6a2a\u5411 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff0c \u6216 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u529f\u7387 \u8017\u5c3d \u3002 KRC \u6d4b\u8bd5 \u5728 \u5de6\u8f6c \u548c \u53f3\u8f6c \u4e2d \u8fdb\u884c \uff0c \u4ee5 \u7a81\u51fa \u8f66\u8f86 \u7684 \u4efb\u4f55 \u4e0d\u5bf9 \u5bf9\u79f0 \u5bf9\u79f0\u6027 \u4e0d\u5bf9\u79f0\u6027 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 SSC \u6d4b\u8bd5 \u7684 \u76ee\u7684 \u662f \u63a8\u65ad \u8f66\u8f86 \u5bf9\u4e8e \u666e\u901a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6765\u8bf4 \u662f\u5426 \u5b89\u5168 \u3002 \u8f66\u8f86 \u5e94\u8be5 \u8f6c\u5411 \u4e0d\u8db3 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u5fc5\u987b \u63d0\u4f9b \u8d8a\u6765 \u8d8a\u6765\u8d8a \u591a \u7684 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u89d2\u5ea6 \uff0c \u540c\u65f6 \u589e\u52a0 \u6a2a\u5411 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff0c \u4ee5 \u4fdd\u6301 \u8f66\u8f86 \u5728 \u5706\u5708 \u4e0a \u5e76 \u4fdd\u6301 \u8f66\u8f86 \u7a33\u5b9a \u5b9a\u6027 \u7a33\u5b9a\u6027 \u3002 \u201c \u8f6c\u5411 \u8fc7\u5ea6 \u201d \u7684 \u8f66\u8f86 \u5f80\u5f80 \u4f1a \u8f6c\u5411 \u5706\u5708 \u539f\u70b9 \u5e76 \u53d8\u5f97 \u4e0d \u7a33\u5b9a \uff0c \u56e0\u4e3a \u540e\u8f6e \u6ca1\u6709 \u8db3\u591f \u7684 \u6a2a\u5411 \u6ed1\u79fb \u50a8\u5907 \u3002 \u666e\u901a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u5728 \u516c\u5171 \u4ea4\u901a \u516c\u5171\u4ea4\u901a \u4e2d \u4f7f\u7528 \u7684 \u6807\u51c6 \u8f66\u8f86 \u5e94 \u907f\u514d \u8fd9\u79cd \u8f6c\u5411 \u8fc7\u5ea6 \u884c\u4e3a \uff0c \u5c3d\u7ba1 \u4e13\u4e1a \u62c9\u529b \u62c9\u529b\u8d5b \u8f66\u624b \u66f4 \u559c\u6b22 \u8f6c\u5411 \u8fc7\u5ea6 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e FED - alpha \uff0c SSC \u6d4b\u8bd5 \u88ab \u5b9a\u4e49 \u4e3a \u7a33\u6001 \u51c6\u7a33\u6001 \u8fd0\u884c \uff0c \u5176\u4e2d \u901f\u5ea6 \u8fde\u7eed \u4f46 \u975e\u5e38 \u7f13\u6162 \u5730 \u53d8\u5316 \uff0c \u56e0\u6b64 \u6ca1\u6709 \u660e\u663e \u7684 \u52a8\u6001 \u6548\u5e94 \u3002 \u56e0\u6b64 \uff0c \u6a21\u62df \u7ed3\u679c \u663e\u793a \u7ed3\u679c\u663e\u793a \u4e3a \u8fde\u7eed \u7ebf \u3002 \u6570\u636e \u7684 \u7b26\u53f7 \u9009\u62e9 \u65b9\u5f0f \u662f \u53f3\u4fa7 \u663e\u793a \u53f3\u8f6c \uff0c \u5de6\u4fa7 \u663e\u793a \u5de6\u8f6c \u3002 \u5b9e\u9a8c KRC \u6570\u636e \u7528\u70b9 \u8868\u793a \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 Chrono Pac02 \u3001 TMsimple \u548c TMeasy \u8f6e\u80ce \u6a21\u578b \u7684 SSC \u6a21\u62df \u7ed3\u679c \u53e0\u52a0 \u5728 KRC \u5b9e\u9a8c \u6570\u636e \u4e0a \u3002 \u57fa\u4e8e FEA \u7684 \u8f6e\u80ce \u6a21\u578b \u6700\u540e \uff0c \u63d0\u4f9b \u7684 \u7b2c\u4e09 \u4e09\u7c7b \u7b2c\u4e09\u7c7b \u8f6e\u80ce \u6a21\u578b \u662f \u8f6e\u80ce \u7684 \u5b8c\u6574 \u6709\u9650 \u6709\u9650\u5143 \u8868\u793a \u3002 \u867d\u7136 \u8fd9\u4e9b \u6a21\u578b \u7531\u4e8e \u5176 \u8be6\u7ec6 \u7684 \u8f6e\u80ce \u7269\u7406 \u6a21\u578b \u800c \u6709 \u53ef\u80fd \u6210\u4e3a \u6700 \u51c6\u786e \u7684 \u6a21\u578b \uff0c \u4f46 \u5b83\u4eec \u4e5f \u662f Chrono : : Vehicle \u4e2d \u5f53\u524d \u53ef\u7528 \u7684 \u8f6e\u80ce \u6a21\u578b \u4e2d \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u6700\u9ad8 \u7684 \u6a21\u578b \u3002 \u4e0e \u521a\u6027 \u6216 \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u4e0d\u540c \uff0c \u57fa\u4e8e \u6709\u9650 \u6709\u9650\u5143 \u7684 \u8f6e\u80ce \u6a21\u578b \u80fd\u591f \u540c\u65f6 \u8003\u8651 \u8f6e\u80ce \u548c \u5730\u9762 \u7684 \u7075\u6d3b \u6d3b\u6027 \u7075\u6d3b\u6027 \uff0c \u8fd9\u662f \u8bb8\u591a \u7c7b\u578b \u7684 \u8d8a\u91ce \u673a\u52a8 \u673a\u52a8\u6027 \u548c \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7814\u7a76 \u7684 \u91cd\u8981 \u7279\u5f81 \u3002 \u8fd9\u4e9b \u6709\u9650 \u6709\u9650\u5143 \u8f6e\u80ce \u6a21\u578b \u5229\u7528 \u4e86 Chrono \u4e2d \u7684 \u7ebf\u6027 \u975e\u7ebf\u6027 \u6709\u9650 \u6709\u9650\u5143 \u529f\u80fd \u3002 ANCF \u58f3 \u53ef \u53d8\u5f62 \u8f6e\u80ce \u53c2\u89c1 ChANCFTire \u548c ANCFTire \u3002 \u4ee5\u4e0b JSON \u6587\u4ef6 \u5305\u542b ANCFTire \u7684 \u89c4\u8303 \uff1a { \" Name \" : \" HMMWV ANCF 4 - Node Tire \" , \" Type \" : \" Tire \" , \" Template \" : \" ANCFTire \" , \" Tire Radius \" : 0.4673 , \" Rim Radius \" : 0.2683 , \" Rim Width \" : 0.254 , \" 8 - Node Elements \" : false , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.1 , \" Properties \" : { \" Young Modulus \" : 2e6 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2.0 e6 , \" Normal Damping \" : 1.3 e1 , \" Tangential Stiffness \" : 1.0 e6 , \" Tangential Damping \" : 0 } } , \" Materials \" : [ { \" Type \" : \" Orthotropic \" , \" Density \" : 0.1000000 E + 04 , \" E \" : [ 0.7560000 E + 10 , 0.4740000 E + 08 , 0.4740000 E + 08 ] , \" nu \" : [ 0.4500000 E + 00 , 0.4500000 E + 00 , 0.4500000 E + 00 ] , \" G \" : [ 0.1634483 E + 08 , 0.1634483 E + 08 , 0.1634483 E + 08 ] } , { \" Type \" : \" Orthotropic \" , \" Density \" : 0.2639000 E + 04 , \" E \" : [ 0.1800000 E + 12 , 0.4740000 E + 08 , 0.4740000 E + 08 ] , \" nu \" : [ 0.4500000 E + 00 , 0.4500000 E + 00 , 0.4500000 E + 00 ] , \" G \" : [ 0.1634483 E + 08 , 0.1634483 E + 08 , 0.1634483 E + 08 ] } , { \" Type \" : \" Orthotropic \" , \" Density \" : 0.1100000 E + 04 , \" E \" : [ 0.4740000 E + 08 , 0.4740000 E + 08 , 0.4740000 E + 08 ] , \" nu \" : [ 0.4500000 E + 00 , 0.4500000 E + 00 , 0.4500000 E + 00 ] , \" G \" : [ 0.1634483 E + 08 , 0.1634483 E + 08 , 0.1634483 E + 08 ] } ] , \" Structural Damping Coefficient \" : 0.005 , \" Default Pressure \" : 200.0 e3 , \" Bead Section \" : { \" Layer Thickness \" : [ 0.5 e - 03 , 0.5 e - 02 , 0.5 e - 03 ] , \" Ply Angle \" : [ 90 , 0 , 90 ] , \" Material ID \" : [ 0 , 2 , 0 ] , \" Number Elements \" : 2 } , \" Sidewall Section \" : { \" Layer Thickness \" : [ 0.5 e - 03 , 0.1 e - 03 , 0.5 e - 03 ] , \" Ply Angle \" : [ 90 , 0 , 90 ] , \" Material ID \" : [ 0 , 2 , 0 ] , \" Number Elements \" : 4 } , \" Tread Section \" : { \" Layer Thickness \" : [ 0.1 e - 02 , 0.3 e - 03 , 0.3 e - 03 , 0.5 e - 03 ] , \" Ply Angle \" : [ 0 , - 20 , 20 , 90 ] , \" Material ID \" : [ 2 , 1 , 1 , 0 ] , \" Number Elements \" : 6 } , \" Number Elements Circumference \" : 90 , \" Profile \" : [ [ 0.000000 E + 00 , 0.000000 E + 00 , - 1.150000 E - 01 ] , [ 1.428571 E - 02 , 1.166670 E - 02 , - 1.164180 E - 01 ] , [ 2.857143 E - 02 , 2.333330 E - 02 , - 1.192300 E - 01 ] , [ 4.285714 E - 02 , 3.500000 E - 02 , - 1.230200 E - 01 ] , [ 5.714286 E - 02 , 4.666670 E - 02 , - 1.273710 E - 01 ] , [ 7.142857 E - 02 , 5.833330 E - 02 , - 1.318700 E - 01 ] , [ 8.571429 E - 02 , 7.000000 E - 02 , - 1.361330 E - 01 ] , [ 1.000000 E - 01 , 8.166670 E - 02 , - 1.399910 E - 01 ] , [ 1.142857 E - 01 , 9.333330 E - 02 , - 1.433510 E - 01 ] , [ 1.285714 E - 01 , 1.050000 E - 01 , - 1.461240 E - 01 ] , [ 1.428571 E - 01 , 1.166670 E - 01 , - 1.482160 E - 01 ] , [ 1.571429 E - 01 , 1.283330 E - 01 , - 1.495390 E - 01 ] , [ 1.714286 E - 01 , 1.400000 E - 01 , - 1.500000 E - 01 ] , [ 1.857143 E - 01 , 1.475000 E - 01 , - 1.486380 E - 01 ] , [ 2.000000 E - 01 , 1.550000 E - 01 , - 1.457860 E - 01 ] , [ 2.142857 E - 01 , 1.625000 E - 01 , - 1.419760 E - 01 ] , [ 2.285714 E - 01 , 1.700000 E - 01 , - 1.360000 E - 01 ] , [ 2.428571 E - 01 , 1.768970 E - 01 , - 1.288420 E - 01 ] , [ 2.571429 E - 01 , 1.831090 E - 01 , - 1.216840 E - 01 ] , [ 2.714286 E - 01 , 1.883940 E - 01 , - 1.145260 E - 01 ] , [ 2.857143 E - 01 , 1.925100 E - 01 , - 1.073680 E - 01 ] , [ 3.000000 E - 01 , 1.953230 E - 01 , - 1.002110 E - 01 ] , [ 3.142857 E - 01 , 1.970380 E - 01 , - 9.305260 E - 02 ] , [ 3.285714 E - 01 , 1.979260 E - 01 , - 8.589470 E - 02 ] , [ 3.428571 E - 01 , 1.982580 E - 01 , - 7.873680 E - 02 ] , [ 3.571429 E - 01 , 1.983020 E - 01 , - 7.157890 E - 02 ] , [ 3.714286 E - 01 , 1.983090 E - 01 , - 6.442110 E - 02 ] , [ 3.857143 E - 01 , 1.983540 E - 01 , - 5.726320 E - 02 ] , [ 4.000000 E - 01 , 1.984290 E - 01 , - 5.010530 E - 02 ] , [ 4.142857 E - 01 , 1.985240 E - 01 , - 4.294740 E - 02 ] , [ 4.285714 E - 01 , 1.986300 E - 01 , - 3.578950 E - 02 ] , [ 4.428571 E - 01 , 1.987380 E - 01 , - 2.863160 E - 02 ] , [ 4.571429 E - 01 , 1.988390 E - 01 , - 2.147370 E - 02 ] , [ 4.714286 E - 01 , 1.989220 E - 01 , - 1.431580 E - 02 ] , [ 4.857143 E - 01 , 1.989790 E - 01 , - 7.157890 E - 03 ] , [ 5.000000 E - 01 , 1.990000 E - 01 , 0.000000 E + 00 ] , [ 5.142857 E - 01 , 1.989790 E - 01 , 7.157890 E - 03 ] , [ 5.285714 E - 01 , 1.989220 E - 01 , 1.431580 E - 02 ] , [ 5.428571 E - 01 , 1.988390 E - 01 , 2.147370 E - 02 ] , [ 5.571429 E - 01 , 1.987380 E - 01 , 2.863160 E - 02 ] , [ 5.714286 E - 01 , 1.986300 E - 01 , 3.578950 E - 02 ] , [ 5.857143 E - 01 , 1.985240 E - 01 , 4.294740 E - 02 ] , [ 6.000000 E - 01 , 1.984290 E - 01 , 5.010530 E - 02 ] , [ 6.142857 E - 01 , 1.983540 E - 01 , 5.726320 E - 02 ] , [ 6.285714 E - 01 , 1.983090 E - 01 , 6.442110 E - 02 ] , [ 6.428571 E - 01 , 1.983020 E - 01 , 7.157890 E - 02 ] , [ 6.571429 E - 01 , 1.982580 E - 01 , 7.873680 E - 02 ] , [ 6.714286 E - 01 , 1.979260 E - 01 , 8.589470 E - 02 ] , [ 6.857143 E - 01 , 1.970380 E - 01 , 9.305260 E - 02 ] , [ 7.000000 E - 01 , 1.953230 E - 01 , 1.002110 E - 01 ] , [ 7.142857 E - 01 , 1.925100 E - 01 , 1.073680 E - 01 ] , [ 7.285714 E - 01 , 1.883940 E - 01 , 1.145260 E - 01 ] , [ 7.428571 E - 01 , 1.831090 E - 01 , 1.216840 E - 01 ] , [ 7.571429 E - 01 , 1.768970 E - 01 , 1.288420 E - 01 ] , [ 7.714286 E - 01 , 1.700000 E - 01 , 1.360000 E - 01 ] , [ 7.857143 E - 01 , 1.625000 E - 01 , 1.419760 E - 01 ] , [ 8.000000 E - 01 , 1.550000 E - 01 , 1.457860 E - 01 ] , [ 8.142857 E - 01 , 1.475000 E - 01 , 1.486380 E - 01 ] , [ 8.285714 E - 01 , 1.400000 E - 01 , 1.500000 E - 01 ] , [ 8.428571 E - 01 , 1.283330 E - 01 , 1.495390 E - 01 ] , [ 8.571429 E - 01 , 1.166670 E - 01 , 1.482160 E - 01 ] , [ 8.714286 E - 01 , 1.050000 E - 01 , 1.461240 E - 01 ] , [ 8.857143 E - 01 , 9.333330 E - 02 , 1.433510 E - 01 ] , [ 9.000000 E - 01 , 8.166670 E - 02 , 1.399910 E - 01 ] , [ 9.142857 E - 01 , 7.000000 E - 02 , 1.361330 E - 01 ] , [ 9.285714 E - 01 , 5.833330 E - 02 , 1.318700 E - 01 ] , [ 9.428571 E - 01 , 4.666670 E - 02 , 1.273710 E - 01 ] , [ 9.571429 E - 01 , 3.500000 E - 02 , 1.230200 E - 01 ] , [ 9.714286 E - 01 , 2.333330 E - 02 , 1.192300 E - 01 ] , [ 9.857143 E - 01 , 1.166670 E - 02 , 1.164180 E - 01 ] , [ 1.000000 E + 00 , 0.000000 E + 00 , 1.150000 E - 01 ] ] } Reissner \u58f3 \u5f62\u53d8 \u8f6e\u80ce \u53c2\u89c1 ChReissnerTire \u548c ReissnerTire \u3002","title":"\u8f6e\u80ce \u6a21\u578b"},{"location":"chrono/wheeled_tire/#_1","text":"Chrono : : Vehicle \u76ee\u524d \u652f\u6301 \u4e09\u79cd \u4e0d\u540c \u7c7b\u522b \u7684 \u8f6e\u80ce \u6a21\u578b \uff1a \u521a\u6027 \u3001 \u64cd\u63a7 \u548c \u6709\u9650 \u6709\u9650\u5143 \u3002 \u521a\u6027 \u8f6e\u80ce \u6a21\u578b \u5904\u7406 \uff08 \u534a \u7ecf\u9a8c \uff09 \u8f6e\u80ce \u6a21\u578b \u521a\u6027 \u8f6e\u80ce \u662f \u63d0\u4f9b \u7684 \u4e09\u79cd \u8f6e\u80ce \u7c7b\u522b \u4e2d \u6700 \u7b80\u5355 \u7684 \u4e00\u79cd \u3002 \u8fd9\u4e9b \u6a21\u578b \u7684 \u5047\u8bbe \u662f \u8f6e\u80ce \u5b8c\u5168 \u521a\u6027 \uff0c \u5e76\u4e14 \u5b83 \u901a\u8fc7 \u4e0e Chrono \u4e2d \u5176\u4ed6 \u521a\u4f53 \u76f8\u540c \u7684 \u5e95\u5c42 \u6469\u64e6 \u548c \u63a5\u89e6 \u7b97\u6cd5 \u4e0e \u5730\u9762 \u548c \u4efb\u4f55 \u5176\u4ed6 \u521a\u6027 \u7269\u4f53 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u8fd9\u4e9b \u8f6e\u80ce \u7684 \u63a5\u89e6 \u51e0\u4f55 \u5f62\u72b6 \u53ef\u4ee5 \u50cf \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u4e00\u6837 \u7b80\u5355 \uff0c \u4e5f \u53ef\u4ee5 \u50cf 3D \u4e09\u89d2 \u7f51\u683c \u4e00\u6837 \u590d\u6742 \u3002 \u8fd9\u4e9b \u6a21\u578b \u4e0d\u4ec5 \u53ef \u7528\u4e8e \u8c03\u8bd5 \u6574\u4f53 \u8f66\u8f86 \u6a21\u578b \uff0c \u800c\u4e14 \u8fd8 \u53ef \u7528\u4e8e \u8fd0\u884c \u65f6 \u5f88 \u91cd\u8981 \u3001 \u5730\u5f62 \u6bd4 \u8f6e\u80ce \u8f6f\u5f97 \u591a\u4e14 \u4e0d \u9700\u8981 \u9ad8\u5ea6 \u8be6\u7ec6 \u7684 \u8f6e\u80ce \u6a21\u578b \u7684 \u60c5\u51b5 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u4e0d \u9002\u5408 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u6a21\u62df \uff0c \u5373 \u4f7f\u7528 \u53ef \u53d8\u5f62 \u5730\u5f62 \uff08 SCM \u3001 \u7c92\u72b6 \u6216 \u57fa\u4e8e FEA \uff1b \u53c2\u9605 \u8bf7\u53c2\u9605 \u53ef\u7528 \u5730\u5f62 \u6a21\u578b \u5730\u5f62\u6a21\u578b \u7684 \u63cf\u8ff0 \uff09 \u3002 \u5bf9\u4e8e \u6b64\u7c7b \u573a\u666f \uff0c \u521a\u6027 \u6216 \u57fa\u4e8e FEA \u7684 \u8f6e\u80ce \u6a21\u578b \u662f \u76ee\u524d \u5728 Chrono : : Vehicle \u4e2d \u5b9e\u73b0 \u7684 \u4ec5 \u6709 \u7684 \u4e24\u4e2a \u53ef\u7528 \u9009\u9879 \u3002 \u53c2\u89c1 ChRigidTire \u548c RigidTire \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 Wavefront OBJ \u6587\u4ef6 \u63d0\u4f9b \u7f51\u683c \u51e0\u4f55 \u5f62\u72b6 \u7684 \u521a\u6027 \u8f6e\u80ce \u7684 \u793a\u4f8b \uff1a { \" Name \" : \" HMMWV Rigid Mesh Tire \" , \" Type \" : \" Tire \" , \" Template \" : \" RigidTire \" , \" Radius \" : 0.4699 , \" Width \" : 0.254 , \" Mass \" : 37.6 , \" Inertia \" : [ 3.84 , 6.69 , 3.84 ] , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.1 , \" Properties \" : { \" Young Modulus \" : 2e7 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2e5 , \" Normal Damping \" : 40.0 , \" Tangential Stiffness \" : 2e5 , \" Tangential Damping \" : 20.0 } } , \" Contact Mesh \" : { \" Mesh Filename \" : \" hmmwv / hmmwv _ tire _ fine . obj \" , \" Sweep Sphere Radius \" : 0.005 } , \" Visualization \" : { \" Mesh Filename Left \" : \" hmmwv / hmmwv _ tire _ fine . obj \" , \" Mesh Filename Right \" : \" hmmwv / hmmwv _ tire _ fine . obj \" } }","title":"\u8f6e\u80ce \u6a21\u578b"},{"location":"chrono/wheeled_tire/#_2","text":"\u63d0\u4f9b \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u8f6e\u80ce \u6a21\u578b \u662f \u5e38\u7528 \u4e8e \u8f66\u8f86 \u64cd\u63a7 \u7684 \u534a \u7ecf\u9a8c \u6a21\u578b \u3002 Chrono : : Vehicle \u76ee\u524d \u5df2 \u5b9e\u73b0 Pacejka \uff08 89 \u548c 2002 \uff09 \u3001 TMeasy \u548c Fiala \u8f6e\u80ce \u6a21\u578b \u3002 \u64cd\u63a7 \u8f6e\u80ce \u6a21\u578b \u4e13 \u4e3a \u5e73\u5766 \u8def\u9762 \u800c \u8bbe\u8ba1 \uff0c \u901a\u5e38 \u4f7f\u7528 \u5355 \u63a5\u89e6 \u70b9\u63a5\u89e6 \u6216 \u56db\u70b9 \u63a5\u89e6 \uff08 TMeasy \uff09 \u3002 \u5bf9\u4e8e \u5728 \u8d77\u4f0f \u8def\u9762 \u4e0a \u8fdb\u884c \u884c\u9a76 \u6d4b\u8bd5 \u6216 \u8d8a\u969c \uff0c \u5df2 \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u79f0\u4e3a \u201c \u5305\u7edc \u201d \u7684 \u7279\u6b8a \u63a5\u89e6 \u7b97\u6cd5 \u3002 \u5b83 \u57fa\u4e8e Sui \u548c Hershey \u7684 \u8bba\u6587 \uff0c \u53ef \u7528\u4e8e Chrono \u4e2d \u5305\u542b \u7684 \u6240\u6709 \u64cd\u63a7 \u8f6e\u80ce \u6a21\u578b \u3002 \u4f7f\u7528 \u6280\u672f \u6f14\u793a \u5668 \u8fdb\u884c \u7684 \u9a8c\u8bc1 \u6d4b\u8bd5 \u4e0e \u6d4b\u91cf \u7684 \u771f\u5b9e \u8f66\u8f86 \u6d4b\u8bd5 \u6570\u636e \u6d4b\u8bd5\u6570\u636e \u76f8\u6bd4 \uff0c \u7ed3\u679c \u826f\u597d \uff0c \u800c\u4e14 \u6570\u503c \u5de5\u4f5c \u5de5\u4f5c\u91cf \u8f83 \u5c11 \u3002 \u5982\u679c \u9700\u8981 \u66f4 \u9ad8 \u7684 \u7cbe\u5ea6 \uff0c \u7528\u6237 \u5e94\u8be5 \u8003\u8651 \u8003\u8651 \u57fa\u4e8e FEA \u7684 \u8f6e\u80ce \u6a21\u578b \u8fdb\u884c \u975e \u64cd\u63a7 \u6d4b\u8bd5 \u3002 \u6709\u4e9b \u7528\u6237 \u53ef\u80fd \u5e0c\u671b \u6839\u636e \u8f6e\u80ce \u6d4b\u8bd5 \u6570\u636e \u6d4b\u8bd5\u6570\u636e \u6784\u5efa \u81ea\u5df1 \u7684 \u64cd\u63a7 \u8f6e\u80ce \u53c2\u6570 \u96c6 \u3002 \u52a1\u5fc5 \u719f\u6089 \u6bcf\u4e2a \u8f6e\u80ce \u6a21\u578b \u4e2d \u7684 \u4e0d\u540c \u6ed1\u79fb \u5b9a\u4e49 \u548c \u4e0d\u540c \u5750\u6807 \u5750\u6807\u7cfb \uff01","title":"\u5904\u7406 \uff08 \u534a \u7ecf\u9a8c \uff09 \u8f6e\u80ce \u6a21\u578b"},{"location":"chrono/wheeled_tire/#pacejka-89pac89","text":"\u53c2\u89c1 ChPac89Tire \u548c Pac89Tire \u3002","title":"Pacejka 89 \uff08 Pac89 \uff09 \u8f6e\u80ce \u6a21\u578b"},{"location":"chrono/wheeled_tire/#pacejka-2002pac02","text":"\u8be5 \u6a21\u578b \u662f Pacejka \u65e9\u671f Magic Formula \u8f6e\u80ce \u6a21\u578b \u7684 \u6269\u5c55 \uff0c \u589e\u52a0 \u4e86 \u65b9\u7a0b \u548c \u7cfb\u6570 \u3002 \u7531\u4e8e \u5728 \u7a33\u6001 \u6ed1\u79fb \u6761\u4ef6 \u4e0b \u4e0d\u4f1a \u53d1\u751f \u5927\u91cf \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u64cd\u4f5c \uff0c \u56e0\u6b64 \u5305\u62ec \u63a5\u89e6 \u63a5\u89e6\u9762 \u6ed1\u79fb \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff0c \u4ee5\u4fbf \u5728 \u77ac\u6001 \u6761\u4ef6 \u4e0b \u63d0\u4f9b \u66f4 \u51c6\u786e \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u7f3a\u4e4f \u53c2\u8003 \u6570\u636e \u96c6 \uff0c \u5145\u6c14 \u538b\u529b \u4f9d\u8d56 \u9879\u548c\u5927\u5916 \u503e\u89d2 \u9879 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u5b9e\u73b0 \u3002 \u6b64 Chrono \u8f6e\u80ce \u6a21\u578b \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4e0e Adams / Car \u517c\u5bb9 \u7684 TIR \u6587\u4ef6 \u6765 \u6307\u5b9a \u3002 \u53c2\u89c1 ChPac02Tire \u548c Pac02Tire \u3002","title":"Pacejka 2002 \uff08 Pac02 \uff09 \u8f6e\u80ce \u6a21\u578b"},{"location":"chrono/wheeled_tire/#tmeasy","text":"TMeasy \uff08 \u8f6e\u80ce \u6a21\u578b \u7b80\u6613 \u7b80\u6613\u7248 \uff09 \u7531 Georg Rill \u6559\u6388 \u5f00\u53d1 \uff0c \u53ef \u4f5c\u4e3a \u5546\u4e1a \u4ee3\u7801 \u4f7f\u7528 \uff08 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 http : / / www . tmeasy . de / \uff09 \u3002 \u8be5 \u6a21\u578b \u7684 \u76ee\u7684 \u662f \u5141\u8bb8 \u8f7b\u677e \u53c2\u6570 \u5316 \u3002 \u5176 \u590d\u6742 \u590d\u6742\u6027 \u5927\u81f4 \u4e0e \u57fa\u4e8e Magic Formula \u7684 \u6a21\u578b \u76f8\u5f53 \u3002 \u6b64\u5916 \uff0c \u57fa\u4e8e \u5361\u8f66 \u548c \u7528\u8f66 \u4e58\u7528\u8f66 \u7684 \u5df2\u77e5 \u53c2\u6570 \u96c6 \uff0c \u53ef\u4ee5 \u4ece \u5c11\u91cf \u8f93\u5165 \u6570\u636e \u4e2d \u4f30\u8ba1 \u5b8c\u6574 \u7684 \u53c2\u6570 \u96c6 \u3002 TMeasy \u8003\u8651 \u7ebf\u6027 \u975e\u7ebf\u6027 \u6548\u5e94 \u5e76 \u5305\u62ec \u63a5\u89e6 \u63a5\u89e6\u9762 \u6ed1\u79fb \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u3002 \u4e0e \u6700\u65b0 \u7684 \u5546\u4e1a TMeasy \u7248\u672c \u76f8\u6bd4 \uff0c Chrono \u4e2d \u4f7f\u7528 \u7684 \u5b9e\u73b0 \u7f3a\u5c11 \u4e00\u4e9b \u529f\u80fd \u3002 \u4f8b\u5982 \uff0c \u6ca1\u6709 \u76ae\u5e26 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \uff0c \u4e5f \u65e0\u6cd5 \u8ba1\u7b97 \u52a8\u6001 \u505c\u8f66 \u626d\u77e9 \u3002 Chrono TMeasy \u8f6e\u80ce \u5b9e\u73b0 \u5305\u542b \u5df2 \u5728 Road Vehicle Dynamics - Fundamentals and Modeling with MATLAB \u4e00\u4e66\u4e2d \u53d1\u8868 \u7684 \u7b97\u6cd5 \uff0c Georg Rill \u548c Abel Arrieta Castro \uff0c CRC Press \uff0c 2020 \u5e74 \u3002 \u53c2\u89c1 ChTMeasyTire \u548c TMeasyTire \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5177\u6709 TMeasy \u8f6e\u80ce \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff1a { \" Name \" : \" HMMWV TMeasy Tire \" , \" Type \" : \" Tire \" , \" Template \" : \" TMeasyTire \" , / / ------------------------------------------------ / / Tire design ( REQUIRED ) \" Design \" : { \" Unloaded Radius [ m ] \" : 0.4699 , \" Mass [ kg ] \" : 37.6 , \" Inertia [ kg . m2 ] \" : [ 3.84 , 6.69 , 3.84 ] , \" Width [ m ] \" : 0.3175 , \" Rim Radius [ m ] \" : 0.2095 } , \" Coefficient of Friction \" : 0.8 , \" Rolling Resistance Coefficient \" : 0.015 , / / ------------------------------------------------ / / Vehicle type . / / Required only if tire specified with \" load index \" or \" bearing capacity \" . / / Must be one of \" Truck \" or \" Passenger \" \" Vehicle Type \" : \" Truck \" , / / ------------------------------------------------ / / Load index specification . / / Takes priority over \" bearing capacity \" ( used only if a full parameterization not provided ) \" Load Index \" : 108 , / / ------------------------------------------------ / / Bearing capacity specification . / / Lowest priority ( used only if no other specification provided ) \" Maximum Bearing Capacity [ N ] \" : 17167.5 , / / ------------------------------------------------ / / Visualization mesh ( OPTIONAL ) \" Visualization \" : { \" Mesh Filename Left \" : \" hmmwv / hmmwv _ tire _ left . obj \" , \" Mesh Filename Right \" : \" hmmwv / hmmwv _ tire _ right . obj \" } }","title":"TMeasy \u8f6e\u80ce \u6a21\u578b \uff08 \u57fa\u7840 \u7248 \uff09"},{"location":"chrono/wheeled_tire/#fiala","text":"Chrono : : Vehicle \u4e2d \u5b9e\u73b0 \u7684 Fiala \u8f6e\u80ce \u6a21\u578b \u4e3b\u8981 \u57fa\u4e8e MSC ADAMS / \u8f6e\u80ce \u5e2e\u52a9 \u6587\u6863 \u4e2d \u4ecb\u7ecd \u7684 \u77ac\u6001 Fiala \u8f6e\u80ce \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u4f7f\u7528 \u8f6e\u80ce \u6ed1\u79fb \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6765 \u6539\u5584 \u6a21\u578b \u5728 \u4f4e\u901f \u81f3 \u96f6 \u524d\u8fdb \u901f\u5ea6 \u4e0b \u7684 \u884c\u4e3a \u3002 Fiala \u8f6e\u80ce \u6a21\u578b \u57fa\u4e8e \u5237\u5b50 \u6a21\u578b \u5047\u8bbe \uff0c \u53ea \u9700\u8981 \u5c11\u91cf \u7cfb\u6570 \u3002 \u8be5 \u8f6e\u80ce \u6a21\u578b \u5047\u8bbe \u8f6e\u80ce \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u5916 \u503e\u89d2 \u4e3a \u96f6 \uff0c \u5e76\u4e14 \u6ca1\u6709 \u4efb\u4f55 \u4ea7\u751f \u503e\u8986 \u529b\u77e9 \u7684 \u63aa\u65bd \u3002 \u4f46\u662f \uff0c \u5b83 \u5728 \u529b \u548c \u529b\u77e9 \u8ba1\u7b97 \u4e2d \u7ed3\u5408 \u4e86 \u8f6e\u80ce \u7684 \u6a2a\u5411 \u548c \u7eb5\u5411 \u6ed1\u79fb \u72b6\u6001 \uff0c \u4ece\u800c \u63d0\u4f9b \u4e86 \u66f4 \u771f\u5b9e \u7684 \u7ec4\u5408 \u6ed1\u79fb \u63cf\u8ff0 \u3002 Fiala \u8f6e\u80ce \u6a21\u578b \u4e0d \u5e94\u7528 \u4e8e \u4e25\u8083 \u7684 \u8f66\u8f86 \u64cd\u7eb5 \u6a21\u62df \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u8003\u8651 \u5f71\u54cd \u7ed3\u679c \u7684 \u91cd\u8981 \u5f71\u54cd \u3002 \u53c2\u89c1 ChFialaTire \u548c FialaTire \u3002 \u4e0b\u9762 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5177\u6709 TMeasy \u8f6e\u80ce \u89c4\u8303 \u7684 \u793a\u4f8b JSON \u6587\u4ef6 \uff1a { \" Name \" : \" HMMWV Fiala Tire \" , \" Type \" : \" Tire \" , \" Template \" : \" FialaTire \" , \" Mass \" : 37.6 , \" Inertia \" : [ 3.84 , 6.69 , 3.84 ] , \" Coefficient of Friction \" : 0.8 , \" Fiala Parameters \" : { \" Unloaded Radius \" : 0.47 , \" Width \" : 0.318 , \" Vertical Damping \" : 7500 , \" Vertical Stiffness \" : 326332 , / / linear stiffness ( if no curve table present ) \" Vertical Curve Data \" : / / nonlinear stifness ( has precedence over linear model ) [ [ 0.000 , 0 ] , [ 0.005 , 585 ] , [ 0.010 , 1286 ] , [ 0.015 , 2352 ] , [ 0.020 , 3477 ] , [ 0.025 , 4798 ] , [ 0.030 , 6190 ] , [ 0.035 , 7540 ] , [ 0.040 , 9027 ] , [ 0.045 , 10570 ] , [ 0.050 , 12139 ] , [ 0.055 , 13654 ] , [ 0.060 , 15368 ] , [ 0.065 , 16904 ] , [ 0.070 , 18469 ] , [ 0.075 , 20089 ] , [ 0.080 , 21699 ] ] , \" Rolling Resistance \" : 0.015 , \" CSLIP \" : 193929.0 , \" CALPHA \" : 50000.0 , \" UMIN \" : 0.5568 , \" UMAX \" : 0.9835 , \" X Relaxation Length \" : 2.0 , \" Y Relaxation Length \" : 2.0 } , \" Visualization \" : { \" Mesh Filename Left \" : \" hmmwv / hmmwv _ tire _ left . obj \" , \" Mesh Filename Right \" : \" hmmwv / hmmwv _ tire _ right . obj \" , \" Width \" : 0.318 } } \u4e0a\u8ff0 JSON \u6587\u4ef6 \u4e2d \u5d4c\u5165 \u7684 \u5782\u76f4 \u8d1f\u8f7d \u66f2\u7ebf \u5982\u4e0b \u6240\u793a \uff1a","title":"Fiala \u8f6e\u80ce \u578b\u53f7"},{"location":"chrono/wheeled_tire/#_3","text":"\u4e0b\u9762 \u6211\u4eec \u5c55\u793a \u4e86 \u9488\u5bf9 \u5bc6\u6b47\u6839 \u5bc6\u6b47\u6839\u5dde \u57fa\u5a01\u7eb3 \u7814\u7a76 \u4e2d\u5fc3 ( KRC ) \u4e3a FED - alpha \u8f66\u8f86 \u63d0\u4f9b \u7684 \u5b9e\u9a8c \u6570\u636e \u5bf9 3 \u4e2a Chrono : : Vehicle \u64cd\u63a7 \u8f6e\u80ce \u6a21\u578b \u8fdb\u884c \u7684 \u9a8c\u8bc1 \u7814\u7a76 \u3002 \u5728 \u8fd9\u4e2a \u79f0\u4e3a ( SSC ) \u7684 \u6d4b\u8bd5 \u4e2d Steady State Cornering \uff0c \u8f66\u8f86 \u4ee5 \u6240\u8c13 \u7684 \u201c \u963f\u514b \u963f\u514b\u66fc \u901f\u5ea6 \u201d \u5f00\u59cb \u6cbf \u5706\u5708 \u884c\u9a76 \u3002 \u8be5\u503c \u7ea6 \u4e3a 3 m / s \uff0c \u56e0\u6b64 \u6ed1\u79fb \u503c \u975e\u5e38 \u5c0f \uff0c \u8f66\u8f86 \u5728 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u4e0a \u8ddf\u968f \u5706\u5708 \u884c\u9a76 \u3002 \u771f\u6b63 \u7684 \u6d4b\u8bd5 \u7ee7\u7eed \u9010\u6b65 \u589e\u52a0 \u8f66\u901f \u5e76 \u4fdd\u6301 \u6052\u5b9a \u3002 \u8fd9\u4e9b \u8fde\u7eed \u7684 \u901f\u5ea6 \u589e\u52a0 \u6b65\u9aa4 \u91cd\u590d \u8fdb\u884c \uff0c \u76f4\u5230 \u8fbe\u5230 \u6700\u5927 \u53ef\u80fd \u7684 \u6a2a\u5411 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff0c \u6216 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u529f\u7387 \u8017\u5c3d \u3002 KRC \u6d4b\u8bd5 \u5728 \u5de6\u8f6c \u548c \u53f3\u8f6c \u4e2d \u8fdb\u884c \uff0c \u4ee5 \u7a81\u51fa \u8f66\u8f86 \u7684 \u4efb\u4f55 \u4e0d\u5bf9 \u5bf9\u79f0 \u5bf9\u79f0\u6027 \u4e0d\u5bf9\u79f0\u6027 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 SSC \u6d4b\u8bd5 \u7684 \u76ee\u7684 \u662f \u63a8\u65ad \u8f66\u8f86 \u5bf9\u4e8e \u666e\u901a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6765\u8bf4 \u662f\u5426 \u5b89\u5168 \u3002 \u8f66\u8f86 \u5e94\u8be5 \u8f6c\u5411 \u4e0d\u8db3 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u5fc5\u987b \u63d0\u4f9b \u8d8a\u6765 \u8d8a\u6765\u8d8a \u591a \u7684 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u89d2\u5ea6 \uff0c \u540c\u65f6 \u589e\u52a0 \u6a2a\u5411 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff0c \u4ee5 \u4fdd\u6301 \u8f66\u8f86 \u5728 \u5706\u5708 \u4e0a \u5e76 \u4fdd\u6301 \u8f66\u8f86 \u7a33\u5b9a \u5b9a\u6027 \u7a33\u5b9a\u6027 \u3002 \u201c \u8f6c\u5411 \u8fc7\u5ea6 \u201d \u7684 \u8f66\u8f86 \u5f80\u5f80 \u4f1a \u8f6c\u5411 \u5706\u5708 \u539f\u70b9 \u5e76 \u53d8\u5f97 \u4e0d \u7a33\u5b9a \uff0c \u56e0\u4e3a \u540e\u8f6e \u6ca1\u6709 \u8db3\u591f \u7684 \u6a2a\u5411 \u6ed1\u79fb \u50a8\u5907 \u3002 \u666e\u901a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u5728 \u516c\u5171 \u4ea4\u901a \u516c\u5171\u4ea4\u901a \u4e2d \u4f7f\u7528 \u7684 \u6807\u51c6 \u8f66\u8f86 \u5e94 \u907f\u514d \u8fd9\u79cd \u8f6c\u5411 \u8fc7\u5ea6 \u884c\u4e3a \uff0c \u5c3d\u7ba1 \u4e13\u4e1a \u62c9\u529b \u62c9\u529b\u8d5b \u8f66\u624b \u66f4 \u559c\u6b22 \u8f6c\u5411 \u8fc7\u5ea6 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e FED - alpha \uff0c SSC \u6d4b\u8bd5 \u88ab \u5b9a\u4e49 \u4e3a \u7a33\u6001 \u51c6\u7a33\u6001 \u8fd0\u884c \uff0c \u5176\u4e2d \u901f\u5ea6 \u8fde\u7eed \u4f46 \u975e\u5e38 \u7f13\u6162 \u5730 \u53d8\u5316 \uff0c \u56e0\u6b64 \u6ca1\u6709 \u660e\u663e \u7684 \u52a8\u6001 \u6548\u5e94 \u3002 \u56e0\u6b64 \uff0c \u6a21\u62df \u7ed3\u679c \u663e\u793a \u7ed3\u679c\u663e\u793a \u4e3a \u8fde\u7eed \u7ebf \u3002 \u6570\u636e \u7684 \u7b26\u53f7 \u9009\u62e9 \u65b9\u5f0f \u662f \u53f3\u4fa7 \u663e\u793a \u53f3\u8f6c \uff0c \u5de6\u4fa7 \u663e\u793a \u5de6\u8f6c \u3002 \u5b9e\u9a8c KRC \u6570\u636e \u7528\u70b9 \u8868\u793a \u3002 \u4e0b\u56fe \u663e\u793a \u4e86 Chrono Pac02 \u3001 TMsimple \u548c TMeasy \u8f6e\u80ce \u6a21\u578b \u7684 SSC \u6a21\u62df \u7ed3\u679c \u53e0\u52a0 \u5728 KRC \u5b9e\u9a8c \u6570\u636e \u4e0a \u3002","title":"\u8f6e\u80ce \u64cd\u4f5c \u6a21\u578b \u9a8c\u8bc1"},{"location":"chrono/wheeled_tire/#fea","text":"\u6700\u540e \uff0c \u63d0\u4f9b \u7684 \u7b2c\u4e09 \u4e09\u7c7b \u7b2c\u4e09\u7c7b \u8f6e\u80ce \u6a21\u578b \u662f \u8f6e\u80ce \u7684 \u5b8c\u6574 \u6709\u9650 \u6709\u9650\u5143 \u8868\u793a \u3002 \u867d\u7136 \u8fd9\u4e9b \u6a21\u578b \u7531\u4e8e \u5176 \u8be6\u7ec6 \u7684 \u8f6e\u80ce \u7269\u7406 \u6a21\u578b \u800c \u6709 \u53ef\u80fd \u6210\u4e3a \u6700 \u51c6\u786e \u7684 \u6a21\u578b \uff0c \u4f46 \u5b83\u4eec \u4e5f \u662f Chrono : : Vehicle \u4e2d \u5f53\u524d \u53ef\u7528 \u7684 \u8f6e\u80ce \u6a21\u578b \u4e2d \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u6700\u9ad8 \u7684 \u6a21\u578b \u3002 \u4e0e \u521a\u6027 \u6216 \u534a \u7ecf\u9a8c \u8f6e\u80ce \u6a21\u578b \u4e0d\u540c \uff0c \u57fa\u4e8e \u6709\u9650 \u6709\u9650\u5143 \u7684 \u8f6e\u80ce \u6a21\u578b \u80fd\u591f \u540c\u65f6 \u8003\u8651 \u8f6e\u80ce \u548c \u5730\u9762 \u7684 \u7075\u6d3b \u6d3b\u6027 \u7075\u6d3b\u6027 \uff0c \u8fd9\u662f \u8bb8\u591a \u7c7b\u578b \u7684 \u8d8a\u91ce \u673a\u52a8 \u673a\u52a8\u6027 \u548c \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7814\u7a76 \u7684 \u91cd\u8981 \u7279\u5f81 \u3002 \u8fd9\u4e9b \u6709\u9650 \u6709\u9650\u5143 \u8f6e\u80ce \u6a21\u578b \u5229\u7528 \u4e86 Chrono \u4e2d \u7684 \u7ebf\u6027 \u975e\u7ebf\u6027 \u6709\u9650 \u6709\u9650\u5143 \u529f\u80fd \u3002","title":"\u57fa\u4e8e FEA \u7684 \u8f6e\u80ce \u6a21\u578b"},{"location":"chrono/wheeled_tire/#ancf","text":"\u53c2\u89c1 ChANCFTire \u548c ANCFTire \u3002 \u4ee5\u4e0b JSON \u6587\u4ef6 \u5305\u542b ANCFTire \u7684 \u89c4\u8303 \uff1a { \" Name \" : \" HMMWV ANCF 4 - Node Tire \" , \" Type \" : \" Tire \" , \" Template \" : \" ANCFTire \" , \" Tire Radius \" : 0.4673 , \" Rim Radius \" : 0.2683 , \" Rim Width \" : 0.254 , \" 8 - Node Elements \" : false , \" Contact Material \" : { \" Coefficient of Friction \" : 0.9 , \" Coefficient of Restitution \" : 0.1 , \" Properties \" : { \" Young Modulus \" : 2e6 , \" Poisson Ratio \" : 0.3 } , \" Coefficients \" : { \" Normal Stiffness \" : 2.0 e6 , \" Normal Damping \" : 1.3 e1 , \" Tangential Stiffness \" : 1.0 e6 , \" Tangential Damping \" : 0 } } , \" Materials \" : [ { \" Type \" : \" Orthotropic \" , \" Density \" : 0.1000000 E + 04 , \" E \" : [ 0.7560000 E + 10 , 0.4740000 E + 08 , 0.4740000 E + 08 ] , \" nu \" : [ 0.4500000 E + 00 , 0.4500000 E + 00 , 0.4500000 E + 00 ] , \" G \" : [ 0.1634483 E + 08 , 0.1634483 E + 08 , 0.1634483 E + 08 ] } , { \" Type \" : \" Orthotropic \" , \" Density \" : 0.2639000 E + 04 , \" E \" : [ 0.1800000 E + 12 , 0.4740000 E + 08 , 0.4740000 E + 08 ] , \" nu \" : [ 0.4500000 E + 00 , 0.4500000 E + 00 , 0.4500000 E + 00 ] , \" G \" : [ 0.1634483 E + 08 , 0.1634483 E + 08 , 0.1634483 E + 08 ] } , { \" Type \" : \" Orthotropic \" , \" Density \" : 0.1100000 E + 04 , \" E \" : [ 0.4740000 E + 08 , 0.4740000 E + 08 , 0.4740000 E + 08 ] , \" nu \" : [ 0.4500000 E + 00 , 0.4500000 E + 00 , 0.4500000 E + 00 ] , \" G \" : [ 0.1634483 E + 08 , 0.1634483 E + 08 , 0.1634483 E + 08 ] } ] , \" Structural Damping Coefficient \" : 0.005 , \" Default Pressure \" : 200.0 e3 , \" Bead Section \" : { \" Layer Thickness \" : [ 0.5 e - 03 , 0.5 e - 02 , 0.5 e - 03 ] , \" Ply Angle \" : [ 90 , 0 , 90 ] , \" Material ID \" : [ 0 , 2 , 0 ] , \" Number Elements \" : 2 } , \" Sidewall Section \" : { \" Layer Thickness \" : [ 0.5 e - 03 , 0.1 e - 03 , 0.5 e - 03 ] , \" Ply Angle \" : [ 90 , 0 , 90 ] , \" Material ID \" : [ 0 , 2 , 0 ] , \" Number Elements \" : 4 } , \" Tread Section \" : { \" Layer Thickness \" : [ 0.1 e - 02 , 0.3 e - 03 , 0.3 e - 03 , 0.5 e - 03 ] , \" Ply Angle \" : [ 0 , - 20 , 20 , 90 ] , \" Material ID \" : [ 2 , 1 , 1 , 0 ] , \" Number Elements \" : 6 } , \" Number Elements Circumference \" : 90 , \" Profile \" : [ [ 0.000000 E + 00 , 0.000000 E + 00 , - 1.150000 E - 01 ] , [ 1.428571 E - 02 , 1.166670 E - 02 , - 1.164180 E - 01 ] , [ 2.857143 E - 02 , 2.333330 E - 02 , - 1.192300 E - 01 ] , [ 4.285714 E - 02 , 3.500000 E - 02 , - 1.230200 E - 01 ] , [ 5.714286 E - 02 , 4.666670 E - 02 , - 1.273710 E - 01 ] , [ 7.142857 E - 02 , 5.833330 E - 02 , - 1.318700 E - 01 ] , [ 8.571429 E - 02 , 7.000000 E - 02 , - 1.361330 E - 01 ] , [ 1.000000 E - 01 , 8.166670 E - 02 , - 1.399910 E - 01 ] , [ 1.142857 E - 01 , 9.333330 E - 02 , - 1.433510 E - 01 ] , [ 1.285714 E - 01 , 1.050000 E - 01 , - 1.461240 E - 01 ] , [ 1.428571 E - 01 , 1.166670 E - 01 , - 1.482160 E - 01 ] , [ 1.571429 E - 01 , 1.283330 E - 01 , - 1.495390 E - 01 ] , [ 1.714286 E - 01 , 1.400000 E - 01 , - 1.500000 E - 01 ] , [ 1.857143 E - 01 , 1.475000 E - 01 , - 1.486380 E - 01 ] , [ 2.000000 E - 01 , 1.550000 E - 01 , - 1.457860 E - 01 ] , [ 2.142857 E - 01 , 1.625000 E - 01 , - 1.419760 E - 01 ] , [ 2.285714 E - 01 , 1.700000 E - 01 , - 1.360000 E - 01 ] , [ 2.428571 E - 01 , 1.768970 E - 01 , - 1.288420 E - 01 ] , [ 2.571429 E - 01 , 1.831090 E - 01 , - 1.216840 E - 01 ] , [ 2.714286 E - 01 , 1.883940 E - 01 , - 1.145260 E - 01 ] , [ 2.857143 E - 01 , 1.925100 E - 01 , - 1.073680 E - 01 ] , [ 3.000000 E - 01 , 1.953230 E - 01 , - 1.002110 E - 01 ] , [ 3.142857 E - 01 , 1.970380 E - 01 , - 9.305260 E - 02 ] , [ 3.285714 E - 01 , 1.979260 E - 01 , - 8.589470 E - 02 ] , [ 3.428571 E - 01 , 1.982580 E - 01 , - 7.873680 E - 02 ] , [ 3.571429 E - 01 , 1.983020 E - 01 , - 7.157890 E - 02 ] , [ 3.714286 E - 01 , 1.983090 E - 01 , - 6.442110 E - 02 ] , [ 3.857143 E - 01 , 1.983540 E - 01 , - 5.726320 E - 02 ] , [ 4.000000 E - 01 , 1.984290 E - 01 , - 5.010530 E - 02 ] , [ 4.142857 E - 01 , 1.985240 E - 01 , - 4.294740 E - 02 ] , [ 4.285714 E - 01 , 1.986300 E - 01 , - 3.578950 E - 02 ] , [ 4.428571 E - 01 , 1.987380 E - 01 , - 2.863160 E - 02 ] , [ 4.571429 E - 01 , 1.988390 E - 01 , - 2.147370 E - 02 ] , [ 4.714286 E - 01 , 1.989220 E - 01 , - 1.431580 E - 02 ] , [ 4.857143 E - 01 , 1.989790 E - 01 , - 7.157890 E - 03 ] , [ 5.000000 E - 01 , 1.990000 E - 01 , 0.000000 E + 00 ] , [ 5.142857 E - 01 , 1.989790 E - 01 , 7.157890 E - 03 ] , [ 5.285714 E - 01 , 1.989220 E - 01 , 1.431580 E - 02 ] , [ 5.428571 E - 01 , 1.988390 E - 01 , 2.147370 E - 02 ] , [ 5.571429 E - 01 , 1.987380 E - 01 , 2.863160 E - 02 ] , [ 5.714286 E - 01 , 1.986300 E - 01 , 3.578950 E - 02 ] , [ 5.857143 E - 01 , 1.985240 E - 01 , 4.294740 E - 02 ] , [ 6.000000 E - 01 , 1.984290 E - 01 , 5.010530 E - 02 ] , [ 6.142857 E - 01 , 1.983540 E - 01 , 5.726320 E - 02 ] , [ 6.285714 E - 01 , 1.983090 E - 01 , 6.442110 E - 02 ] , [ 6.428571 E - 01 , 1.983020 E - 01 , 7.157890 E - 02 ] , [ 6.571429 E - 01 , 1.982580 E - 01 , 7.873680 E - 02 ] , [ 6.714286 E - 01 , 1.979260 E - 01 , 8.589470 E - 02 ] , [ 6.857143 E - 01 , 1.970380 E - 01 , 9.305260 E - 02 ] , [ 7.000000 E - 01 , 1.953230 E - 01 , 1.002110 E - 01 ] , [ 7.142857 E - 01 , 1.925100 E - 01 , 1.073680 E - 01 ] , [ 7.285714 E - 01 , 1.883940 E - 01 , 1.145260 E - 01 ] , [ 7.428571 E - 01 , 1.831090 E - 01 , 1.216840 E - 01 ] , [ 7.571429 E - 01 , 1.768970 E - 01 , 1.288420 E - 01 ] , [ 7.714286 E - 01 , 1.700000 E - 01 , 1.360000 E - 01 ] , [ 7.857143 E - 01 , 1.625000 E - 01 , 1.419760 E - 01 ] , [ 8.000000 E - 01 , 1.550000 E - 01 , 1.457860 E - 01 ] , [ 8.142857 E - 01 , 1.475000 E - 01 , 1.486380 E - 01 ] , [ 8.285714 E - 01 , 1.400000 E - 01 , 1.500000 E - 01 ] , [ 8.428571 E - 01 , 1.283330 E - 01 , 1.495390 E - 01 ] , [ 8.571429 E - 01 , 1.166670 E - 01 , 1.482160 E - 01 ] , [ 8.714286 E - 01 , 1.050000 E - 01 , 1.461240 E - 01 ] , [ 8.857143 E - 01 , 9.333330 E - 02 , 1.433510 E - 01 ] , [ 9.000000 E - 01 , 8.166670 E - 02 , 1.399910 E - 01 ] , [ 9.142857 E - 01 , 7.000000 E - 02 , 1.361330 E - 01 ] , [ 9.285714 E - 01 , 5.833330 E - 02 , 1.318700 E - 01 ] , [ 9.428571 E - 01 , 4.666670 E - 02 , 1.273710 E - 01 ] , [ 9.571429 E - 01 , 3.500000 E - 02 , 1.230200 E - 01 ] , [ 9.714286 E - 01 , 2.333330 E - 02 , 1.192300 E - 01 ] , [ 9.857143 E - 01 , 1.166670 E - 02 , 1.164180 E - 01 ] , [ 1.000000 E + 00 , 0.000000 E + 00 , 1.150000 E - 01 ] ] }","title":"ANCF \u58f3 \u53ef \u53d8\u5f62 \u8f6e\u80ce"},{"location":"chrono/wheeled_tire/#reissner","text":"\u53c2\u89c1 ChReissnerTire \u548c ReissnerTire \u3002","title":"Reissner \u58f3 \u5f62\u53d8 \u8f6e\u80ce"},{"location":"chrono/wheeled_vehicle/","text":"\u8f6e\u5f0f \u8f66\u8f86 Chrono : : Vehicle \u4e2d \u7684 \u8f6e\u5f0f \u8f66\u8f86 \u662f \u62bd\u8c61 \u901a\u7528 \u8f66\u8f86 \u7cfb\u7edf ( ChVehicle ) \u7684 \u4e00\u79cd \u7279\u6b8a \u7279\u6b8a\u5316 \uff0c \u88ab \u5b9a\u4e49 \u4e3a \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u96c6\u5408 \uff08 \u5982\u4e0b \u6240\u793a \uff09 \u3002 \u8f6e\u5f0f \u8f66\u8f86 \u5305\u542b \u5e95\u76d8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u3001 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u7cfb\u7edf \u5b50\u7cfb\u7edf \u548c \u4efb\u610f \u6570\u91cf \u7684 \u8f66\u8f74 \uff0c \u6309\u7167 \u60ef\u4f8b \uff0c \u8f66\u8f74 \u4ece \u8f66\u8f86 \u524d\u90e8 \u5f00\u59cb \u7f16\u53f7 \u3002 \u591a \u8f6c\u5411 \u8f66\u8f86 \u901a\u8fc7 \u5141\u8bb8 \u4efb\u610f \u6570\u91cf \u7684 \u8f6c\u5411 \u673a\u6784 \uff08 \u8fde\u63a5 \u5230 \u4e0d\u540c \u7684 \u8f66\u8f74 \uff09 \u6216 \u5141\u8bb8 \u591a\u4e2a \u53ef \u8f6c\u5411 \u8f66\u8f74 \u8fde\u63a5 \u5230 \u540c\u4e00 \u8f6c\u5411 \u673a\u6784 \u6765 \u652f\u6301 \u3002 \u6bcf\u4e2a \u8f66\u8f74 \u6bcf\u4fa7 \u53ef\u4ee5 \u5bb9\u7eb3 \u4e00\u4e2a \u6216 \u4e24\u4e2a \u8f6e\u80ce \u3002 \u53c2\u89c1 ChWheeledVehicle \u3002 \u4ee5\u4e0b \u7ae0\u8282 \u63cf\u8ff0 \u4e86 \u5404\u79cd \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u677f \uff1a \u60ac\u6302 \u6a21\u578b \u8f6c\u5411 \u673a\u6784 \u6a21\u578b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u8f6e\u80ce \u578b\u53f7","title":"\u8f6e\u5f0f \u8f66\u8f86"},{"location":"chrono/wheeled_vehicle/#_1","text":"Chrono : : Vehicle \u4e2d \u7684 \u8f6e\u5f0f \u8f66\u8f86 \u662f \u62bd\u8c61 \u901a\u7528 \u8f66\u8f86 \u7cfb\u7edf ( ChVehicle ) \u7684 \u4e00\u79cd \u7279\u6b8a \u7279\u6b8a\u5316 \uff0c \u88ab \u5b9a\u4e49 \u4e3a \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7684 \u96c6\u5408 \uff08 \u5982\u4e0b \u6240\u793a \uff09 \u3002 \u8f6e\u5f0f \u8f66\u8f86 \u5305\u542b \u5e95\u76d8 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u3001 \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u7cfb\u7edf \u5b50\u7cfb\u7edf \u548c \u4efb\u610f \u6570\u91cf \u7684 \u8f66\u8f74 \uff0c \u6309\u7167 \u60ef\u4f8b \uff0c \u8f66\u8f74 \u4ece \u8f66\u8f86 \u524d\u90e8 \u5f00\u59cb \u7f16\u53f7 \u3002 \u591a \u8f6c\u5411 \u8f66\u8f86 \u901a\u8fc7 \u5141\u8bb8 \u4efb\u610f \u6570\u91cf \u7684 \u8f6c\u5411 \u673a\u6784 \uff08 \u8fde\u63a5 \u5230 \u4e0d\u540c \u7684 \u8f66\u8f74 \uff09 \u6216 \u5141\u8bb8 \u591a\u4e2a \u53ef \u8f6c\u5411 \u8f66\u8f74 \u8fde\u63a5 \u5230 \u540c\u4e00 \u8f6c\u5411 \u673a\u6784 \u6765 \u652f\u6301 \u3002 \u6bcf\u4e2a \u8f66\u8f74 \u6bcf\u4fa7 \u53ef\u4ee5 \u5bb9\u7eb3 \u4e00\u4e2a \u6216 \u4e24\u4e2a \u8f6e\u80ce \u3002 \u53c2\u89c1 ChWheeledVehicle \u3002 \u4ee5\u4e0b \u7ae0\u8282 \u63cf\u8ff0 \u4e86 \u5404\u79cd \u7cfb\u7edf \u5b50\u7cfb\u7edf \u6a21\u677f \uff1a \u60ac\u6302 \u6a21\u578b \u8f6c\u5411 \u673a\u6784 \u6a21\u578b \u4f20\u52a8 \u7cfb\u7edf \u52a8\u7cfb\u7edf \u4f20\u52a8\u7cfb\u7edf \u6a21\u578b \u8f6e\u80ce \u578b\u53f7","title":"\u8f6e\u5f0f \u8f66\u8f86"},{"location":"course/auto_signal_control/","text":"\u81ea\u52a8 \u4fe1\u53f7 \u63a7\u5236 \u8fd9\u662f \u4e00\u4e2a \u57fa\u4e8e Flask \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u7528\u4e8e \u63a7\u5236 Carla \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u901a\u8fc7 \u68c0\u6d4b \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u52a8\u6001 \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u957f \uff0c \u4ee5 \u4f18\u5316 \u4ea4\u901a \u901a\u884c \u6548\u7387 \u3002 \u4e3b\u8981 \u529f\u80fd \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e3b\u8981 \u529f\u80fd \u5305\u62ec \uff1a 1 . \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 2 . \u6839\u636e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u52a8\u6001 \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff08 \u7eff\u706f \uff09 \u7684 \u65f6\u957f \u3002 3 . \u8fd4\u56de \u6307\u5b9a \u8def\u53e3 \u5f53\u524d \u5168\u90e8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u72b6\u6001 \u548c \u65f6\u957f \u4fe1\u606f \u3002 \u4f20\u5165 \u53c2\u6570 \u65e0\u9700 \u4f20\u5165 \u53c2\u6570 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81ea\u52a8 \u52a8\u68c0 \u68c0\u6d4b \u81ea\u52a8\u68c0\u6d4b \u6307\u5b9a \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u5e76 \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u957f \u3002 \u6838\u5fc3 \u5b9e\u73b0 \u6b65\u9aa4 1 . \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fde\u63a5 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 \u5e76 \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) 2 . \u83b7\u53d6 \u8def\u53e3 \u4fe1\u606f \uff1a \u901a\u8fc7 \u4e2d\u5fc3 \u4f4d\u7f6e \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u8bc1 \u6bcf\u6b21 \u8bf7\u6c42 \u4e0d\u4f1a \u5f80\u8be5 \u8def\u53e3 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u96c6\u5408 \u4e2d\u65b0 \u4e2d\u65b0\u52a0 \u91cd\u590d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5148 \u7528 \u96c6\u5408 \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u552f\u4e00 ID traffics _ in _ junction = set ( ) def get _ traffic _ lights _ in _ junction ( world , junction ) : \" \" \" \u83b7\u53d6 \u8def\u53e3 \u7684 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \" \" \" traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) for traffic _ light in traffic _ lights : if get _ distance ( traffic _ light . get _ location ( ) , center _ location [ 0 ] ) < = 50 : id = traffic _ light . get _ opendrive _ id ( ) traffics _ in _ junction . add ( id ) def get _ light ( all _ traffic _ lights ) : \" \" \" \u6839\u636e \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ID \u5217\u8868 \u83b7\u53d6 \u5bf9\u5e94 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5bf9\u8c61 \" \" \" drive _ list = list ( traffics _ in _ junction ) traffic _ lights = [ ] for traffic _ light in all _ traffic _ lights : if traffic _ light . get _ opendrive _ id ( ) in drive _ list : traffic _ lights . append ( traffic _ light ) return traffic _ lights 3 . \u8ba1\u7b97 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \uff1a \u68c0\u6d4b \u6307\u5b9a \u8303\u56f4 \u5185 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 def get _ vehicles _ in _ intersection ( world , intersection _ location , intersection _ radius ) : \" \" \" \u83b7\u53d6 \u8def\u53e3 \u8303\u56f4 \u5185 \u7684 \u8f66\u8f86 \u6570\u91cf \" \" \" vehicles = world . get _ actors ( ) . filter ( ' vehicle . * ' ) vehicles _ in _ intersection = [ ] for vehicle in vehicles : distance = get _ distance ( vehicle . get _ location ( ) , intersection _ location ) if distance < = intersection _ radius : vehicles _ in _ intersection . append ( vehicle ) return len ( vehicles _ in _ intersection ) 4 . \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f \uff1a \u6839\u636e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u52a8\u6001 \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u957f \u3002 if junction _ flow > 15 : for traffic _ light in get _ light ( all _ traffic _ lights ) : traffic _ light . set _ green _ time ( GREEN _ TIME + 15 ) last _ green _ time = GREEN _ TIME + 15 elif junction _ flow > 10 : for traffic _ light in get _ light ( all _ traffic _ lights ) : traffic _ light . set _ green _ time ( GREEN _ TIME + 10 ) last _ green _ time = GREEN _ TIME + 10 elif junction _ flow > 5 : for traffic _ light in get _ light ( all _ traffic _ lights ) : traffic _ light . set _ green _ time ( GREEN _ TIME + 5 ) last _ green _ time = GREEN _ TIME + 5 else : for traffic _ light in get _ light ( all _ traffic _ lights ) : traffic _ light . set _ green _ time ( GREEN _ TIME ) last _ green _ time = GREEN _ TIME 5 . \u8fd4\u56de \u7ed3\u679c \uff1a \u8fd4\u56de \u5f53\u524d \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u72b6\u6001 \u548c \u8c03\u6574 \u540e \u7684 \u65f6\u957f \u4fe1\u606f \u3002 response _ data = { \" traffic _ lights \" : [ { \" id \" : traffic _ ids } , { \" init _ green _ time \" : traffic _ init _ green _ time } , { \" last _ green _ time \" : last _ green _ time } ] } \u4f7f\u7528 \u6b65\u9aa4 \u83b7\u53d6 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff0c \u53ef\u4ee5 \u53d1\u9001 \u4e00\u4e2a GET \u8bf7\u6c42 \u5230 / set _ traffic _ light \u8def\u7531 , \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u81ea\u52a8 \u6839\u636e \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u957f \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u6253\u5f00 Carla \u4eff\u771f \u73af\u5883 \u5148 \u8fd0\u884c generate _ traffic . py \u6765 \u751f\u6210 \u4ea4\u901a \u8fd0\u884c \u811a\u672c auto _ signal _ control . py \u6765 \u5f00\u542f \u670d\u52a1 \u670d\u52a1\u7aef \u53d1\u9001 http \u8bf7\u6c42 : http : / / 127.0 . 0.1 : 5000 / set _ traffic _ light \u901a\u8fc7 \u8fd9\u4e9b \u6b65\u9aa4 \u548c \u8bf4\u660e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u52a8\u6001 \u8c03\u6574 Carla \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f \uff0c \u4ee5 \u4f18\u5316 \u4ea4\u901a \u901a\u884c \u6548\u7387 \u3002","title":"\u81ea\u52a8 \u4fe1\u53f7 \u63a7\u5236"},{"location":"course/auto_signal_control/#_1","text":"\u8fd9\u662f \u4e00\u4e2a \u57fa\u4e8e Flask \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u7528\u4e8e \u63a7\u5236 Carla \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u901a\u8fc7 \u68c0\u6d4b \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u52a8\u6001 \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u957f \uff0c \u4ee5 \u4f18\u5316 \u4ea4\u901a \u901a\u884c \u6548\u7387 \u3002","title":"\u81ea\u52a8 \u4fe1\u53f7 \u63a7\u5236"},{"location":"course/auto_signal_control/#_2","text":"\u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e3b\u8981 \u529f\u80fd \u5305\u62ec \uff1a 1 . \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 2 . \u6839\u636e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u52a8\u6001 \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff08 \u7eff\u706f \uff09 \u7684 \u65f6\u957f \u3002 3 . \u8fd4\u56de \u6307\u5b9a \u8def\u53e3 \u5f53\u524d \u5168\u90e8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u72b6\u6001 \u548c \u65f6\u957f \u4fe1\u606f \u3002","title":"\u4e3b\u8981 \u529f\u80fd"},{"location":"course/auto_signal_control/#_3","text":"\u65e0\u9700 \u4f20\u5165 \u53c2\u6570 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81ea\u52a8 \u52a8\u68c0 \u68c0\u6d4b \u81ea\u52a8\u68c0\u6d4b \u6307\u5b9a \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u5e76 \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u957f \u3002","title":"\u4f20\u5165 \u53c2\u6570"},{"location":"course/auto_signal_control/#_4","text":"1 . \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fde\u63a5 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 \u5e76 \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) 2 . \u83b7\u53d6 \u8def\u53e3 \u4fe1\u606f \uff1a \u901a\u8fc7 \u4e2d\u5fc3 \u4f4d\u7f6e \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u8bc1 \u6bcf\u6b21 \u8bf7\u6c42 \u4e0d\u4f1a \u5f80\u8be5 \u8def\u53e3 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u96c6\u5408 \u4e2d\u65b0 \u4e2d\u65b0\u52a0 \u91cd\u590d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5148 \u7528 \u96c6\u5408 \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u552f\u4e00 ID traffics _ in _ junction = set ( ) def get _ traffic _ lights _ in _ junction ( world , junction ) : \" \" \" \u83b7\u53d6 \u8def\u53e3 \u7684 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \" \" \" traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) for traffic _ light in traffic _ lights : if get _ distance ( traffic _ light . get _ location ( ) , center _ location [ 0 ] ) < = 50 : id = traffic _ light . get _ opendrive _ id ( ) traffics _ in _ junction . add ( id ) def get _ light ( all _ traffic _ lights ) : \" \" \" \u6839\u636e \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ID \u5217\u8868 \u83b7\u53d6 \u5bf9\u5e94 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5bf9\u8c61 \" \" \" drive _ list = list ( traffics _ in _ junction ) traffic _ lights = [ ] for traffic _ light in all _ traffic _ lights : if traffic _ light . get _ opendrive _ id ( ) in drive _ list : traffic _ lights . append ( traffic _ light ) return traffic _ lights 3 . \u8ba1\u7b97 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \uff1a \u68c0\u6d4b \u6307\u5b9a \u8303\u56f4 \u5185 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 def get _ vehicles _ in _ intersection ( world , intersection _ location , intersection _ radius ) : \" \" \" \u83b7\u53d6 \u8def\u53e3 \u8303\u56f4 \u5185 \u7684 \u8f66\u8f86 \u6570\u91cf \" \" \" vehicles = world . get _ actors ( ) . filter ( ' vehicle . * ' ) vehicles _ in _ intersection = [ ] for vehicle in vehicles : distance = get _ distance ( vehicle . get _ location ( ) , intersection _ location ) if distance < = intersection _ radius : vehicles _ in _ intersection . append ( vehicle ) return len ( vehicles _ in _ intersection ) 4 . \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f \uff1a \u6839\u636e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u52a8\u6001 \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u957f \u3002 if junction _ flow > 15 : for traffic _ light in get _ light ( all _ traffic _ lights ) : traffic _ light . set _ green _ time ( GREEN _ TIME + 15 ) last _ green _ time = GREEN _ TIME + 15 elif junction _ flow > 10 : for traffic _ light in get _ light ( all _ traffic _ lights ) : traffic _ light . set _ green _ time ( GREEN _ TIME + 10 ) last _ green _ time = GREEN _ TIME + 10 elif junction _ flow > 5 : for traffic _ light in get _ light ( all _ traffic _ lights ) : traffic _ light . set _ green _ time ( GREEN _ TIME + 5 ) last _ green _ time = GREEN _ TIME + 5 else : for traffic _ light in get _ light ( all _ traffic _ lights ) : traffic _ light . set _ green _ time ( GREEN _ TIME ) last _ green _ time = GREEN _ TIME 5 . \u8fd4\u56de \u7ed3\u679c \uff1a \u8fd4\u56de \u5f53\u524d \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u72b6\u6001 \u548c \u8c03\u6574 \u540e \u7684 \u65f6\u957f \u4fe1\u606f \u3002 response _ data = { \" traffic _ lights \" : [ { \" id \" : traffic _ ids } , { \" init _ green _ time \" : traffic _ init _ green _ time } , { \" last _ green _ time \" : last _ green _ time } ] }","title":"\u6838\u5fc3 \u5b9e\u73b0 \u6b65\u9aa4"},{"location":"course/auto_signal_control/#_5","text":"\u83b7\u53d6 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff0c \u53ef\u4ee5 \u53d1\u9001 \u4e00\u4e2a GET \u8bf7\u6c42 \u5230 / set _ traffic _ light \u8def\u7531 , \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u81ea\u52a8 \u6839\u636e \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u957f \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u6253\u5f00 Carla \u4eff\u771f \u73af\u5883 \u5148 \u8fd0\u884c generate _ traffic . py \u6765 \u751f\u6210 \u4ea4\u901a \u8fd0\u884c \u811a\u672c auto _ signal _ control . py \u6765 \u5f00\u542f \u670d\u52a1 \u670d\u52a1\u7aef \u53d1\u9001 http \u8bf7\u6c42 : http : / / 127.0 . 0.1 : 5000 / set _ traffic _ light \u901a\u8fc7 \u8fd9\u4e9b \u6b65\u9aa4 \u548c \u8bf4\u660e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u52a8\u6001 \u8c03\u6574 Carla \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f \uff0c \u4ee5 \u4f18\u5316 \u4ea4\u901a \u901a\u884c \u6548\u7387 \u3002","title":"\u4f7f\u7528 \u6b65\u9aa4"},{"location":"course/congestion_sim/","text":"\u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u6a21\u62df generate _ traffic . py \u662f \u4e00\u4e2a \u7528\u4e8e \u6a21\u62df \u4ea4\u901a \u7684 \u811a\u672c \u3002 \u901a\u8fc7 \u591a\u6b21 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u53ef\u4ee5 \u6a21\u62df \u548c \u5206\u6790 \u4e0d\u540c \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4e0b \u7684 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u60c5\u51b5 \uff0c \u5e76 \u8fdb\u884c \u6570\u636e \u7edf\u8ba1 \u548c \u4f18\u5316 \u8bc4\u4f30 \u3002 \u529f\u80fd \u4ecb\u7ecd \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u6a21\u62df \uff1a \u901a\u8fc7 \u591a\u6b21 \u8fd0\u884c \u811a\u672c \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \uff0c \u6a21\u62df \u4e0d\u540c \u573a\u666f \u4e0b \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u53d8\u5316 \u3002 \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \uff1a \u5bf9 \u591a\u6b21 \u6a21\u62df \u8fc7\u7a0b \u4e2d \u7684 \u62e5\u5835 \u60c5\u51b5 \u8fdb\u884c \u6570\u636e \u91c7\u96c6 \u548c \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \u3002 \u6548\u679c \u8bc4\u4f30 \uff1a \u8bc4\u4f30 \u4e0d\u540c \u4ea4\u901a \u4f18\u5316 \u63aa\u65bd \u5bf9 \u7f13\u89e3 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u7684 \u5f71\u54cd \u3002 generate _ traffic . py \u4f7f\u7528 \u8bf4\u660e \u6587\u6863 \u6982\u8ff0 generate _ traffic . py \u662f \u4e00\u4e2a \u7528\u4e8e \u6a21\u62df \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u7684 \u811a\u672c \u3002 \u901a\u8fc7 \u591a\u6b21 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u53ef\u4ee5 \u6a21\u62df \u548c \u5206\u6790 \u4e0d\u540c \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4e0b \u7684 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u60c5\u51b5 \uff0c \u5e76 \u8fdb\u884c \u6570\u636e \u7edf\u8ba1 \u548c \u4f18\u5316 \u8bc4\u4f30 \u3002 \u529f\u80fd \u4ecb\u7ecd \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u6a21\u62df \uff1a \u901a\u8fc7 \u591a\u6b21 \u8fd0\u884c \u811a\u672c \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \uff0c \u6a21\u62df \u4e0d\u540c \u573a\u666f \u4e0b \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u53d8\u5316 \u3002 \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \uff1a \u5bf9 \u591a\u6b21 \u6a21\u62df \u8fc7\u7a0b \u4e2d \u7684 \u62e5\u5835 \u60c5\u51b5 \u8fdb\u884c \u6570\u636e \u91c7\u96c6 \u548c \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \u3002 \u6548\u679c \u8bc4\u4f30 \uff1a \u8bc4\u4f30 \u4e0d\u540c \u4ea4\u901a \u4f18\u5316 \u63aa\u65bd \u5bf9 \u7f13\u89e3 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u7684 \u5f71\u54cd \u3002 \u4f7f\u7528 \u65b9\u6cd5 \u4f9d\u8d56 \u73af\u5883 \u5728 \u8fd0\u884c generate _ traffic . py \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5b89\u88c5 \u4e86 \u4ee5\u4e0b \u4f9d\u8d56 \u5305 \uff1a CARLA \u4eff\u771f \u73af\u5883 \u7684 \u642d\u5efa \u3002 Carla , Numpy \u7b49 \u4f9d\u8d56 \u5305 \u7684 \u5b89\u88c5 \u3002 \u811a\u672c \u8fd0\u884c \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u8fd0\u884c \u811a\u672c \uff1a python generate _ traffic . py \u591a\u6b21 \u8fd0\u884c \u6a21\u62df \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u4e3a\u4e86 \u6a21\u62df \u4e0d\u540c \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4e0b \u7684 \u62e5\u5835 \u60c5\u51b5 \uff0c \u53ef\u4ee5 \u591a\u6b21 \u8fd0\u884c generate _ traffic . py \u811a\u672c \u3002 \u4f7f\u7528 traffic _ indicators . py \u811a\u672c \u5bf9 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef \u3001 \u8def\u53e3 \u9971\u548c \u3001 \u6392\u961f \u957f\u5ea6 \u56db\u79cd \u8def\u53e3 \u771f\u5b9e \u771f\u5b9e\u6027 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u3002","title":"\u4ea4\u901a\u62e5\u5835 \u6a21\u62df"},{"location":"course/congestion_sim/#_1","text":"generate _ traffic . py \u662f \u4e00\u4e2a \u7528\u4e8e \u6a21\u62df \u4ea4\u901a \u7684 \u811a\u672c \u3002 \u901a\u8fc7 \u591a\u6b21 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u53ef\u4ee5 \u6a21\u62df \u548c \u5206\u6790 \u4e0d\u540c \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4e0b \u7684 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u60c5\u51b5 \uff0c \u5e76 \u8fdb\u884c \u6570\u636e \u7edf\u8ba1 \u548c \u4f18\u5316 \u8bc4\u4f30 \u3002","title":"\u4ea4\u901a\u62e5\u5835 \u6a21\u62df"},{"location":"course/congestion_sim/#_2","text":"\u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u6a21\u62df \uff1a \u901a\u8fc7 \u591a\u6b21 \u8fd0\u884c \u811a\u672c \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \uff0c \u6a21\u62df \u4e0d\u540c \u573a\u666f \u4e0b \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u53d8\u5316 \u3002 \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \uff1a \u5bf9 \u591a\u6b21 \u6a21\u62df \u8fc7\u7a0b \u4e2d \u7684 \u62e5\u5835 \u60c5\u51b5 \u8fdb\u884c \u6570\u636e \u91c7\u96c6 \u548c \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \u3002 \u6548\u679c \u8bc4\u4f30 \uff1a \u8bc4\u4f30 \u4e0d\u540c \u4ea4\u901a \u4f18\u5316 \u63aa\u65bd \u5bf9 \u7f13\u89e3 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u7684 \u5f71\u54cd \u3002","title":"\u529f\u80fd \u4ecb\u7ecd"},{"location":"course/congestion_sim/#generate_trafficpy","text":"","title":"generate _ traffic . py \u4f7f\u7528 \u8bf4\u660e \u6587\u6863"},{"location":"course/congestion_sim/#_3","text":"generate _ traffic . py \u662f \u4e00\u4e2a \u7528\u4e8e \u6a21\u62df \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u7684 \u811a\u672c \u3002 \u901a\u8fc7 \u591a\u6b21 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u53ef\u4ee5 \u6a21\u62df \u548c \u5206\u6790 \u4e0d\u540c \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4e0b \u7684 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u60c5\u51b5 \uff0c \u5e76 \u8fdb\u884c \u6570\u636e \u7edf\u8ba1 \u548c \u4f18\u5316 \u8bc4\u4f30 \u3002","title":"\u6982\u8ff0"},{"location":"course/congestion_sim/#_4","text":"\u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u6a21\u62df \uff1a \u901a\u8fc7 \u591a\u6b21 \u8fd0\u884c \u811a\u672c \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \uff0c \u6a21\u62df \u4e0d\u540c \u573a\u666f \u4e0b \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u53d8\u5316 \u3002 \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \uff1a \u5bf9 \u591a\u6b21 \u6a21\u62df \u8fc7\u7a0b \u4e2d \u7684 \u62e5\u5835 \u60c5\u51b5 \u8fdb\u884c \u6570\u636e \u91c7\u96c6 \u548c \u7edf\u8ba1 \u8ba1\u5206 \u5206\u6790 \u7edf\u8ba1\u5206\u6790 \u3002 \u6548\u679c \u8bc4\u4f30 \uff1a \u8bc4\u4f30 \u4e0d\u540c \u4ea4\u901a \u4f18\u5316 \u63aa\u65bd \u5bf9 \u7f13\u89e3 \u4ea4\u901a \u62e5\u5835 \u4ea4\u901a\u62e5\u5835 \u7684 \u5f71\u54cd \u3002","title":"\u529f\u80fd \u4ecb\u7ecd"},{"location":"course/congestion_sim/#_5","text":"","title":"\u4f7f\u7528 \u65b9\u6cd5"},{"location":"course/congestion_sim/#_6","text":"\u5728 \u8fd0\u884c generate _ traffic . py \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5b89\u88c5 \u4e86 \u4ee5\u4e0b \u4f9d\u8d56 \u5305 \uff1a CARLA \u4eff\u771f \u73af\u5883 \u7684 \u642d\u5efa \u3002 Carla , Numpy \u7b49 \u4f9d\u8d56 \u5305 \u7684 \u5b89\u88c5 \u3002","title":"\u4f9d\u8d56 \u73af\u5883"},{"location":"course/congestion_sim/#_7","text":"\u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u8fd0\u884c \u811a\u672c \uff1a python generate _ traffic . py","title":"\u811a\u672c \u8fd0\u884c"},{"location":"course/congestion_sim/#_8","text":"\u4e3a\u4e86 \u6a21\u62df \u4e0d\u540c \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4e0b \u7684 \u62e5\u5835 \u60c5\u51b5 \uff0c \u53ef\u4ee5 \u591a\u6b21 \u8fd0\u884c generate _ traffic . py \u811a\u672c \u3002 \u4f7f\u7528 traffic _ indicators . py \u811a\u672c \u5bf9 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef \u3001 \u8def\u53e3 \u9971\u548c \u3001 \u6392\u961f \u957f\u5ea6 \u56db\u79cd \u8def\u53e3 \u771f\u5b9e \u771f\u5b9e\u6027 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u3002","title":"\u591a\u6b21 \u8fd0\u884c \u6a21\u62df \u4ea4\u901a\u62e5\u5835"},{"location":"course/locate_moving/","text":"\u8f66\u8f86 \u6309 \u5730\u56fe \u9009\u70b9 \u8fdb\u884c \u79fb\u52a8 \u200b \u6b64 \u793a\u4f8b \u652f\u6301 \u5728 pygame \u7a97\u53e3 \u5bf9 \u663e\u793a \u533a\u57df \u8fdb\u884c \u8f66\u8f86 \u751f\u6210 \u5e76 \u8fdb\u884c \u79fb\u52a8 \u3002 \u73af\u5883 \u4f9d\u8d56 python 3.7 . 9 carla 0.9 . 15 \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \u8fd0\u884c locate _ moving . py CarlaSimulator \u7c7b \u200b \u8be5\u7c7b \u4e3b\u8981 \u5b8c\u6210 \u8bbe\u7f6e \u76f8\u673a \u3001 \u5904\u7406 \u76f8\u673a \u56fe\u50cf \u3001 \u5c06 Pygame \u5750\u6807 \u8f6c\u6362 \u4e3a CARLA \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u3002 \u51fd\u6570 \u521d\u59cb \u521d\u59cb\u5316 __ init __ \u200b \u521d\u59cb \u521d\u59cb\u5316 \u51fd\u6570 \uff0c \u8bbe\u7f6e \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u7684 \u5bbd\u5ea6 \u548c \u9ad8\u5ea6 \uff0c \u8fde\u63a5 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76 \u83b7\u53d6 \u4e16\u754c \u548c \u84dd \u56fe\u5e93 \u3002 def __ init __ ( self , width , height ) : self . width = width self . height = height self . client = carla . Client ( ' localhost ' , 2000 ) self . client . set _ timeout ( 10.0 ) self . world = self . client . get _ world ( ) self . blueprint _ library = self . world . get _ blueprint _ library ( ) self . vehicle _ bp = self . blueprint _ library . filter ( ' vehicle . * ' ) [ 0 ] self . camera = None self . vehicles = [ ] self . fov = VIEW _ FOV setup _ camera \u51fd\u6570 \u200b \u8bbe\u7f6e \u76f8\u673a \uff0c \u5b9a\u4e49 \u76f8\u673a \u7684 \u84dd\u56fe \u3001 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3001 \u89c6\u573a \u89d2 \uff08 FOV \uff09 \uff0c \u5e76 \u5c06 \u76f8\u673a \u751f\u6210 \u5728 \u6307\u5b9a \u7684 \u4f4d\u7f6e \u548c \u89d2\u5ea6 \u3002 def setup _ camera ( self ) : camera _ bp = self . blueprint _ library . find ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , str ( self . width ) ) camera _ bp . set _ attribute ( ' image _ size _ y ' , str ( self . height ) ) camera _ bp . set _ attribute ( ' fov ' , str ( self . fov ) ) camera _ transform = carla . Transform ( carla . Location ( x = 0 , y = 0 , z = 50 ) , carla . Rotation ( yaw = 270 , pitch = - 90 ) ) self . camera = self . world . spawn _ actor ( camera _ bp , camera _ transform ) process _ image \u51fd\u6570 \u200b \u5904\u7406 \u76f8\u673a \u6355\u83b7 \u7684 \u56fe\u50cf \uff0c \u5c06 \u5176 \u8f6c\u6362 \u4e3a Pygame \u53ef \u663e\u793a \u7684 \u683c\u5f0f \u3002 def process _ image ( self , image ) : array = np . frombuffer ( image . raw _ data , dtype = np . uint8 ) array = array . reshape ( ( self . height , self . width , 4 ) ) array = array [ : , : , : 3 ] # Remove alpha channel array = array [ : , : , : : - 1 ] # Convert BGR to RGB surface = pygame . surfarray . make _ surface ( array . swapaxes ( 0 , 1 ) ) return surface convert _ pygame _ to _ world \u51fd\u6570 \u200b \u5c06 Pygame \u7a97\u53e3 \u4e2d \u7684 \u5750\u6807 \u8f6c\u6362 \u4e3a CARLA \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u3002 \u4e3b\u8981 \u901a\u8fc7 \u76f8\u673a \u7684 \u89c6\u89d2 \u548c Pygame \u7a97\u53e3 \u7684 \u5927\u5c0f \u8fdb\u884c \u8ba1\u7b97 \u3002 def convert _ pygame _ to _ world ( self , x , y ) : cam _ transform = self . camera . get _ transform ( ) cam _ loc = cam _ transform . location aspect _ ratio = self . width / self . height camera _ fov _ rad = np . radians ( self . fov ) camera _ fov _ y = 2 * np . arctan ( np . tan ( camera _ fov _ rad / 2 ) / aspect _ ratio ) world _ units _ per _ pixel _ x = ( 2 * cam _ loc . z * np . tan ( camera _ fov _ rad / 2 ) ) / self . width world _ units _ per _ pixel _ y = ( 2 * cam _ loc . z * np . tan ( camera _ fov _ y / 2 ) ) / self . height relative _ x = ( x - self . width / 2 ) * world _ units _ per _ pixel _ x relative _ y = ( y - self . height / 2 ) * world _ units _ per _ pixel _ y world _ x = cam _ loc . x + relative _ x world _ y = cam _ loc . y - relative _ y return world _ x , world _ y run \u51fd\u6570 \u200b \u8fd0\u884c \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u521d\u59cb \u521d\u59cb\u5316 Pygame \u7a97\u53e3 \uff0c \u8bbe\u7f6e \u76f8\u673a \u76d1\u542c \u76d1\u542c\u5668 \uff0c \u5e76 \u5904\u7406 Pygame \u4e8b\u4ef6 \uff0c \u5982 \u70b9\u51fb \u4e8b\u4ef6 \u751f\u6210 \u8f66\u8f86 \u3002 def run ( self ) : pygame . init ( ) display = pygame . display . set _ mode ( ( self . width , self . height ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) clock = pygame . time . Clock ( ) self . setup _ camera ( ) self . camera . listen ( lambda image : display . blit ( self . process _ image ( image ) , ( 0 , 0 ) ) ) running = True while running : for event in pygame . event . get ( ) : if event . type = = pygame . QUIT : running = False elif event . type = = pygame . MOUSEBUTTONDOWN : x , y = event . pos world _ x , world _ y = self . convert _ pygame _ to _ world ( x , y ) spawn _ point = carla . Transform ( carla . Location ( x = world _ x , y = - world _ y , z = 1 ) , carla . Rotation ( ) ) vehicle = self . world . spawn _ actor ( self . vehicle _ bp , spawn _ point ) vehicle . set _ autopilot ( ) self . vehicles . append ( vehicle ) pygame . display . flip ( ) clock . tick ( 30 ) for vehicle in self . vehicles : vehicle . destroy ( ) self . camera . destroy ( ) pygame . quit ( )","title":"\u8f66\u8f86 \u6309 \u5730\u56fe \u9009\u70b9 \u8fdb\u884c \u79fb\u52a8"},{"location":"course/locate_moving/#_1","text":"\u200b \u6b64 \u793a\u4f8b \u652f\u6301 \u5728 pygame \u7a97\u53e3 \u5bf9 \u663e\u793a \u533a\u57df \u8fdb\u884c \u8f66\u8f86 \u751f\u6210 \u5e76 \u8fdb\u884c \u79fb\u52a8 \u3002","title":"\u8f66\u8f86 \u6309 \u5730\u56fe \u9009\u70b9 \u8fdb\u884c \u79fb\u52a8"},{"location":"course/locate_moving/#_2","text":"python 3.7 . 9 carla 0.9 . 15 \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \u8fd0\u884c locate _ moving . py","title":"\u73af\u5883 \u4f9d\u8d56"},{"location":"course/locate_moving/#carlasimulator","text":"\u200b \u8be5\u7c7b \u4e3b\u8981 \u5b8c\u6210 \u8bbe\u7f6e \u76f8\u673a \u3001 \u5904\u7406 \u76f8\u673a \u56fe\u50cf \u3001 \u5c06 Pygame \u5750\u6807 \u8f6c\u6362 \u4e3a CARLA \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u3002","title":"CarlaSimulator \u7c7b"},{"location":"course/locate_moving/#__init__","text":"\u200b \u521d\u59cb \u521d\u59cb\u5316 \u51fd\u6570 \uff0c \u8bbe\u7f6e \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u7684 \u5bbd\u5ea6 \u548c \u9ad8\u5ea6 \uff0c \u8fde\u63a5 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76 \u83b7\u53d6 \u4e16\u754c \u548c \u84dd \u56fe\u5e93 \u3002 def __ init __ ( self , width , height ) : self . width = width self . height = height self . client = carla . Client ( ' localhost ' , 2000 ) self . client . set _ timeout ( 10.0 ) self . world = self . client . get _ world ( ) self . blueprint _ library = self . world . get _ blueprint _ library ( ) self . vehicle _ bp = self . blueprint _ library . filter ( ' vehicle . * ' ) [ 0 ] self . camera = None self . vehicles = [ ] self . fov = VIEW _ FOV","title":"\u51fd\u6570 \u521d\u59cb\u5316 __ init __"},{"location":"course/locate_moving/#setup_camera","text":"\u200b \u8bbe\u7f6e \u76f8\u673a \uff0c \u5b9a\u4e49 \u76f8\u673a \u7684 \u84dd\u56fe \u3001 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3001 \u89c6\u573a \u89d2 \uff08 FOV \uff09 \uff0c \u5e76 \u5c06 \u76f8\u673a \u751f\u6210 \u5728 \u6307\u5b9a \u7684 \u4f4d\u7f6e \u548c \u89d2\u5ea6 \u3002 def setup _ camera ( self ) : camera _ bp = self . blueprint _ library . find ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , str ( self . width ) ) camera _ bp . set _ attribute ( ' image _ size _ y ' , str ( self . height ) ) camera _ bp . set _ attribute ( ' fov ' , str ( self . fov ) ) camera _ transform = carla . Transform ( carla . Location ( x = 0 , y = 0 , z = 50 ) , carla . Rotation ( yaw = 270 , pitch = - 90 ) ) self . camera = self . world . spawn _ actor ( camera _ bp , camera _ transform )","title":"setup _ camera \u51fd\u6570"},{"location":"course/locate_moving/#process_image","text":"\u200b \u5904\u7406 \u76f8\u673a \u6355\u83b7 \u7684 \u56fe\u50cf \uff0c \u5c06 \u5176 \u8f6c\u6362 \u4e3a Pygame \u53ef \u663e\u793a \u7684 \u683c\u5f0f \u3002 def process _ image ( self , image ) : array = np . frombuffer ( image . raw _ data , dtype = np . uint8 ) array = array . reshape ( ( self . height , self . width , 4 ) ) array = array [ : , : , : 3 ] # Remove alpha channel array = array [ : , : , : : - 1 ] # Convert BGR to RGB surface = pygame . surfarray . make _ surface ( array . swapaxes ( 0 , 1 ) ) return surface","title":"process _ image \u51fd\u6570"},{"location":"course/locate_moving/#convert_pygame_to_world","text":"\u200b \u5c06 Pygame \u7a97\u53e3 \u4e2d \u7684 \u5750\u6807 \u8f6c\u6362 \u4e3a CARLA \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u3002 \u4e3b\u8981 \u901a\u8fc7 \u76f8\u673a \u7684 \u89c6\u89d2 \u548c Pygame \u7a97\u53e3 \u7684 \u5927\u5c0f \u8fdb\u884c \u8ba1\u7b97 \u3002 def convert _ pygame _ to _ world ( self , x , y ) : cam _ transform = self . camera . get _ transform ( ) cam _ loc = cam _ transform . location aspect _ ratio = self . width / self . height camera _ fov _ rad = np . radians ( self . fov ) camera _ fov _ y = 2 * np . arctan ( np . tan ( camera _ fov _ rad / 2 ) / aspect _ ratio ) world _ units _ per _ pixel _ x = ( 2 * cam _ loc . z * np . tan ( camera _ fov _ rad / 2 ) ) / self . width world _ units _ per _ pixel _ y = ( 2 * cam _ loc . z * np . tan ( camera _ fov _ y / 2 ) ) / self . height relative _ x = ( x - self . width / 2 ) * world _ units _ per _ pixel _ x relative _ y = ( y - self . height / 2 ) * world _ units _ per _ pixel _ y world _ x = cam _ loc . x + relative _ x world _ y = cam _ loc . y - relative _ y return world _ x , world _ y","title":"convert _ pygame _ to _ world \u51fd\u6570"},{"location":"course/locate_moving/#run","text":"\u200b \u8fd0\u884c \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u521d\u59cb \u521d\u59cb\u5316 Pygame \u7a97\u53e3 \uff0c \u8bbe\u7f6e \u76f8\u673a \u76d1\u542c \u76d1\u542c\u5668 \uff0c \u5e76 \u5904\u7406 Pygame \u4e8b\u4ef6 \uff0c \u5982 \u70b9\u51fb \u4e8b\u4ef6 \u751f\u6210 \u8f66\u8f86 \u3002 def run ( self ) : pygame . init ( ) display = pygame . display . set _ mode ( ( self . width , self . height ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) clock = pygame . time . Clock ( ) self . setup _ camera ( ) self . camera . listen ( lambda image : display . blit ( self . process _ image ( image ) , ( 0 , 0 ) ) ) running = True while running : for event in pygame . event . get ( ) : if event . type = = pygame . QUIT : running = False elif event . type = = pygame . MOUSEBUTTONDOWN : x , y = event . pos world _ x , world _ y = self . convert _ pygame _ to _ world ( x , y ) spawn _ point = carla . Transform ( carla . Location ( x = world _ x , y = - world _ y , z = 1 ) , carla . Rotation ( ) ) vehicle = self . world . spawn _ actor ( self . vehicle _ bp , spawn _ point ) vehicle . set _ autopilot ( ) self . vehicles . append ( vehicle ) pygame . display . flip ( ) clock . tick ( 30 ) for vehicle in self . vehicles : vehicle . destroy ( ) self . camera . destroy ( ) pygame . quit ( )","title":"run \u51fd\u6570"},{"location":"course/microscopic_Intersection_demo/","text":"\u8def\u53e3 \u5fae\u89c2 3D \u52a8\u753b \u6f14\u793a \u8fd0\u52a8 \u573a\u666f spectator . py \u4ecb\u7ecd \u6b64 \u811a\u672c \u8fde\u63a5 \u5230 CARLA \u4eff\u771f \u73af\u5883 \uff0c \u5e76 \u5b9a\u671f \u5207\u6362 \u6e56 \u5de5\u5546 \u9644\u8fd1 \u7684 \u56db\u4e2a \u9884\u8bbe \u8def\u53e3 \u89c6\u89d2 \u3002 \u901a\u8fc7 \u4e0d\u65ad \u6539\u53d8 \u89c2\u4f17 \uff08 Spectator \uff09 \u7684 \u89c6\u89d2 \uff0c \u7528\u6237 \u53ef\u4ee5 \u89c2\u5bdf \u5230 \u4e0d\u540c \u8def\u53e3 \u7684 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u73af\u5883 \u8981\u6c42 Python 3.6 \u53ca \u4ee5\u4e0a \u7248\u672c CARLA \u4eff\u771f \u73af\u5883 \u5b89\u88c5 \u5fc5\u8981 \u7684 Python \u5e93 \uff1a spectator . py \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \uff0c \u5e76 \u8fd0\u884c generate _ traffic . py \u5b89\u88c5 \u5fc5\u8981 \u7684 python \u5e93 pip install carla \u8fd0\u884c \u6b64 \u793a\u4f8b \u652f\u6301 \u8bbe\u7f6e spectator \u89c6\u89d2 \u6765 \u89c2\u5bdf \u4ea4\u901a \u8def\u53e3 \u8fd0\u52a8 \u60c5\u5f62 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u901a\u8fc7 \u9884\u5b9a \u4e49 spectator \u5bf9\u8c61 \u89c6\u89d2 \u7684 \u4f4d\u7f6e Location \u548c \u65cb\u8f6c \u89d2\u5ea6 pitch \u6765 \u8fdb\u884c \u89c6\u89d2 \u7684 \u66f4\u6362 client = carla . Client ( ' localhost ' , 2000 ) client . set _ timeout ( 10 ) world = client . get _ world ( ) spectator _ transform = [ carla . Transform ( carla . Location ( x = - 323 , y = - 15.7 , z = 108 ) , carla . Rotation ( pitch = - 90 ) ) , carla . Transform ( carla . Location ( x = - 359.6 , y = 391.3 , z = 94 ) , carla . Rotation ( pitch = - 90 ) ) , carla . Transform ( carla . Location ( x = 426.2 , y = - 33.4 , z = 91.6 ) , carla . Rotation ( pitch = - 90 ) ) , carla . Transform ( carla . Location ( x = 375.1 , y = - 558.4 , z = 91.6 ) , carla . Rotation ( pitch = - 90 ) ) ] spectator = world . get _ spectator ( ) spectator . set _ transform ( spectator _ transform [ 0 ] ) \u5b9a\u671f \u5207\u6362 \u89c6\u89d2 \u811a\u672c \u5c06 \u8fde\u63a5 \u5230 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76 \u6bcf 5 \u79d2 \u5207\u6362 \u4e00\u6b21 \u9884\u8bbe \u7684 \u89c2\u4f17 \u89c6\u89d2 \u3002 start _ time = time . time ( ) state = 0 while True : elapsed _ time = time . time ( ) - start _ time if elapsed _ time > = 5 : spectator . set _ transform ( spectator _ transform [ state ] ) state + = 1 if state > 3 : state = 0 start _ time = time . time ( ) \u8fd0\u884c \u7ed3\u679c \uff1a","title":"\u8def\u53e3 \u5fae\u89c2 3D \u52a8\u753b \u6f14\u793a \u8fd0\u52a8 \u573a\u666f spectator . py"},{"location":"course/microscopic_Intersection_demo/#3d-spectatorpy","text":"","title":"\u8def\u53e3 \u5fae\u89c2 3D \u52a8\u753b \u6f14\u793a \u8fd0\u52a8 \u573a\u666f spectator . py"},{"location":"course/microscopic_Intersection_demo/#_1","text":"\u6b64 \u811a\u672c \u8fde\u63a5 \u5230 CARLA \u4eff\u771f \u73af\u5883 \uff0c \u5e76 \u5b9a\u671f \u5207\u6362 \u6e56 \u5de5\u5546 \u9644\u8fd1 \u7684 \u56db\u4e2a \u9884\u8bbe \u8def\u53e3 \u89c6\u89d2 \u3002 \u901a\u8fc7 \u4e0d\u65ad \u6539\u53d8 \u89c2\u4f17 \uff08 Spectator \uff09 \u7684 \u89c6\u89d2 \uff0c \u7528\u6237 \u53ef\u4ee5 \u89c2\u5bdf \u5230 \u4e0d\u540c \u8def\u53e3 \u7684 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002","title":"\u4ecb\u7ecd"},{"location":"course/microscopic_Intersection_demo/#_2","text":"Python 3.6 \u53ca \u4ee5\u4e0a \u7248\u672c CARLA \u4eff\u771f \u73af\u5883 \u5b89\u88c5 \u5fc5\u8981 \u7684 Python \u5e93 \uff1a spectator . py \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \uff0c \u5e76 \u8fd0\u884c generate _ traffic . py \u5b89\u88c5 \u5fc5\u8981 \u7684 python \u5e93 pip install carla","title":"\u73af\u5883 \u8981\u6c42"},{"location":"course/microscopic_Intersection_demo/#_3","text":"\u6b64 \u793a\u4f8b \u652f\u6301 \u8bbe\u7f6e spectator \u89c6\u89d2 \u6765 \u89c2\u5bdf \u4ea4\u901a \u8def\u53e3 \u8fd0\u52a8 \u60c5\u5f62 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u901a\u8fc7 \u9884\u5b9a \u4e49 spectator \u5bf9\u8c61 \u89c6\u89d2 \u7684 \u4f4d\u7f6e Location \u548c \u65cb\u8f6c \u89d2\u5ea6 pitch \u6765 \u8fdb\u884c \u89c6\u89d2 \u7684 \u66f4\u6362 client = carla . Client ( ' localhost ' , 2000 ) client . set _ timeout ( 10 ) world = client . get _ world ( ) spectator _ transform = [ carla . Transform ( carla . Location ( x = - 323 , y = - 15.7 , z = 108 ) , carla . Rotation ( pitch = - 90 ) ) , carla . Transform ( carla . Location ( x = - 359.6 , y = 391.3 , z = 94 ) , carla . Rotation ( pitch = - 90 ) ) , carla . Transform ( carla . Location ( x = 426.2 , y = - 33.4 , z = 91.6 ) , carla . Rotation ( pitch = - 90 ) ) , carla . Transform ( carla . Location ( x = 375.1 , y = - 558.4 , z = 91.6 ) , carla . Rotation ( pitch = - 90 ) ) ] spectator = world . get _ spectator ( ) spectator . set _ transform ( spectator _ transform [ 0 ] )","title":"\u8fd0\u884c"},{"location":"course/microscopic_Intersection_demo/#_4","text":"\u811a\u672c \u5c06 \u8fde\u63a5 \u5230 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76 \u6bcf 5 \u79d2 \u5207\u6362 \u4e00\u6b21 \u9884\u8bbe \u7684 \u89c2\u4f17 \u89c6\u89d2 \u3002 start _ time = time . time ( ) state = 0 while True : elapsed _ time = time . time ( ) - start _ time if elapsed _ time > = 5 : spectator . set _ transform ( spectator _ transform [ state ] ) state + = 1 if state > 3 : state = 0 start _ time = time . time ( )","title":"\u5b9a\u671f \u5207\u6362 \u89c6\u89d2"},{"location":"course/microscopic_Intersection_demo/#_5","text":"","title":"\u8fd0\u884c \u7ed3\u679c \uff1a"},{"location":"course/motion_planning/","text":"\u8def\u7ebf \u89c4\u5212 \u200b \u6b64 \u793a\u4f8b \u5728 Carla \u4eff\u771f \u73af\u5883 \u4e2d \uff0c \u4f7f\u7528 RRT \u8def\u5f84 \u89c4\u5212 \u548c PID \u63a7\u5236 \u8fdb\u884c \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8def\u5f84 \u8ddf\u8e2a \uff0c RRT \u7b97\u6cd5 \u80fd\u591f \u5728 \u590d\u6742 \u7684 \u73af\u5883 \u4e2d \u5feb\u901f \u627e\u5230 \u4ece \u8d77\u70b9 \u5230 \u7ec8\u70b9 \u7684 \u8def\u5f84 \uff0c \u540c\u65f6 \u907f\u5f00 \u969c\u788d \u969c\u788d\u7269 \uff1b PID \u63a7\u5236 \u63a7\u5236\u5668 \u6839\u636e \u8def\u5f84 \u7684 \u66f2\u7387 \u548c \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u8c03\u6574 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u786e\u4fdd \u8f66\u8f86 \u80fd\u591f \u6309\u7167 \u89c4\u5212 \u7684 \u8def\u5f84 \u884c\u9a76 \u3002 \u73af\u5883 \u8981\u6c42 Python 3.7 CARLA \u4eff\u771f \u73af\u5883 \u5b89\u88c5 \u5fc5\u8981 \u7684 Python \u5e93 main _ v4 _ VO \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \u5bfc\u5165 CARLA \u6a21\u5757 \u200b \u5bfc\u5165 CARLA \u6a21\u5757 \uff0c \u5e76 \u6dfb\u52a0 \u5fc5\u8981 \u7684 \u8def\u5f84 \u3002 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 ] ) import carla except IndexError : pass RednerObject \u7c7b \u8be5\u7c7b \u4e3b\u8981 \u7528\u4e8e \u62a5\u9519 \u548c \u4f20\u9012 pygame \u5bf9\u8c61 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) pygame _ callback \u51fd\u6570 \u200b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \u51fd\u6570 \uff0c \u5c06 \u76f8\u673a \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u8f6c\u6362 \u4e3a 2D RGB \u56fe\u50cf \uff0c \u5e76 \u5e94\u7528 \u4e8e Pygame \u3002 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 ) ) CARLA _ world \u7c7b \u8be5\u7c7b \u7528\u4e8e \u8fde\u63a5 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u7ba1\u7406 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 class CARLA _ world : def __ init __ ( self ) : self . client = carla . Client ( ' localhost ' , 2000 ) self . client . set _ timeout ( 120.0 ) self . carla _ world = self . client . get _ world ( ) self . map = self . carla _ world . get _ map ( ) print ( \" WORLD READY \" ) settings = self . carla _ world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.02 self . carla _ world . apply _ settings ( settings ) self . spectator = self . carla _ world . get _ spectator ( ) self . vehicles = [ ] self . ego _ vehicle = None \u7a0b\u5e8f \u4e3b\u7a0b\u5e8f \u521d\u59cb \u521d\u59cb\u5316 Carla \u4e16\u754c \u5bf9\u8c61 \u521b\u5efa Carla \u4e16\u754c \u5b9e\u4f8b \uff0c \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \uff0c \u751f\u6210 \u81ea\u8f66 \u548c \u969c\u788d \u8f66\u8f86 \u3002 CARLA _ world = CARLA _ world ( ) spawn _ points = CARLA _ world . map . get _ spawn _ points ( ) target _ speed = 3.0 v _ obs = 3.0 spawn _ point1 = carla . Transform ( carla . Location ( x = 428 , y = - 51.9 , z = 0.3 ) , carla . Rotation ( yaw = 89 ) ) blueprint _ library = CARLA _ world . carla _ world . get _ blueprint _ library ( ) bp1 = blueprint _ library . filter ( \" model3 \" ) [ 0 ] vehicle1 = CARLA _ world . carla _ world . spawn _ actor ( bp1 , spawn _ point1 ) CARLA _ world . vehicles . append ( vehicle1 ) spawn _ point3 = carla . Transform ( carla . Location ( x = 404 , y = - 14 , z = 0.3 ) , carla . Rotation ( yaw = 0 ) ) bp3 = blueprint _ library . filter ( \" model3 \" ) [ 0 ] CARLA _ world . ego _ vehicle = CARLA _ world . carla _ world . spawn _ actor ( bp3 , spawn _ point3 ) \u521d\u59cb \u521d\u59cb\u5316 \u76f8\u673a \u200b \u5c06 \u76f8\u673a \u9644\u52a0 \u5230 \u81ea \u8f66\u4e0a \uff0c \u5e76 \u8bbe\u7f6e \u56de\u8c03 \u51fd\u6570 \u5904\u7406 \u76f8\u673a \u56fe\u50cf \u3002 camera _ init _ trans = carla . Transform ( carla . Location ( x = - 10 , y = - 4 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = CARLA _ world . carla _ world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , str ( VIEW _ WIDTH ) ) camera _ bp . set _ attribute ( ' image _ size _ y ' , str ( VIEW _ HEIGHT ) ) camera _ bp . set _ attribute ( ' fov ' , str ( VIEW _ FOV ) ) camera = CARLA _ world . carla _ world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = CARLA _ world . ego _ vehicle ) renderObject = RenderObject ( VIEW _ WIDTH , VIEW _ HEIGHT ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) \u521d\u59cb \u521d\u59cb\u5316 Pygame \u200b \u521d\u59cb \u521d\u59cb\u5316 Pygame \u7a97\u53e3 \uff0c \u5e76 \u8bbe\u7f6e \u76f8\u5e94 \u6807\u9898 \u3002 pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( VIEW _ WIDTH , VIEW _ HEIGHT ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) pygame . display . set _ caption ( \" Camera View \" ) \u8f68\u8ff9 \u89c4\u5212 \u548c \u63a7\u5236 \u200b \u4f7f\u7528 RRT \u7b97\u6cd5 \u8fdb\u884c \u8f68\u8ff9 \u89c4\u5212 \uff0c \u5e76 \u901a\u8fc7 PID \u63a7\u5236 \u63a7\u5236\u5668 \u8fdb\u884c \u8f66\u8f86 \u8def\u5f84 \u8ddf\u8e2a \u3002 goal = CARLA _ world . map . get _ waypoint ( carla . Location ( x = 444 , y = - 14 ) , project _ to _ road = True ) CARLA _ world . carla _ world . tick ( ) trans = CARLA _ world . vehicles [ 0 ] . get _ transform ( ) v _ obs = 7.8 obstacles = [ trans , v _ obs ] RRT _ planner = RRT _ VO ( CARLA _ world , goal , obstacles ) RRT _ planner . RRT _ star ( n _ pts = 1000 ) path = RRT _ planner . path path _ x = [ ] path _ y = [ ] trans = CARLA _ world . ego _ vehicle . get _ transform ( ) thetai = trans . rotation . yaw * math . pi / 180 final _ theta = thetai for i in range ( len ( path ) - 1 ) : if i = = len ( path ) - 2 : thetaf = final _ theta else : x1 , y1 = path [ i + 1 ] . x , path [ i + 1 ] . y x2 , y2 = path [ i + 2 ] . x , path [ i + 2 ] . y thetaf = math . atan2 ( ( y2 - y1 ) , ( x2 - x1 ) ) primitive = motion _ primitive ( thetai , thetaf , path [ i ] . x , path [ i + 1 ] . x , path [ i ] . y , path [ i + 1 ] . y ) primitive . cubic _ T _ Matrix ( ) primitive . trajectory ( ) pos _ x , pos _ y = primitive . get _ path ( 0.05 ) path _ x + = pos _ x path _ y + = pos _ y thetai = thetaf \u5faa\u73af \u79fb\u52a8 \u200b \u5728 Pygame \u7a97\u53e3 \u4e2d \u663e\u793a \u76f8\u673a \u89c6\u89d2 \uff0c \u5e76 \u6839\u636e RRT \u89c4\u5212 \u7684 \u8def\u5f84 \u63a7\u5236 \u8f66\u8f86 \u79fb\u52a8 \u3002 controller = VehiclePIDController ( CARLA _ world . ego _ vehicle , [ 1.0 , 0.05 , 0.1 ] , [ 0.5 , 0.05 , 0.1 ] ) controller _ obs = VehiclePIDController ( CARLA _ world . vehicles [ 0 ] , [ 1.0 , 0.05 , 0.1 ] , [ 0.5 , 0.05 , 0.1 ] ) actual _ x = [ ] actual _ y = [ ] ti = time . time ( ) for i in range ( len ( path _ x ) - 1 ) : trans = CARLA _ world . ego _ vehicle . get _ transform ( ) loc _ x , loc _ y = trans . location . x , trans . location . y w _ x , w _ y = path _ x [ i ] , path _ y [ i ] w _ x2 , w _ y2 = path _ x [ i + 1 ] , path _ y [ i + 1 ] phi = math . atan2 ( ( w _ y2 - w _ y ) , ( w _ x2 - w _ x ) ) physics = CARLA _ world . ego _ vehicle . get _ physics _ control ( ) wheels = physics . wheels wheel _ F _ x = ( wheels [ 0 ] . position . x + wheels [ 1 ] . position . x ) / 200 wheel _ F _ y = ( wheels [ 0 ] . position . y + wheels [ 1 ] . position . y ) / 200 while ( ( wheel _ F _ x - w _ x2 ) * * 2 + ( wheel _ F _ y - w _ y2 ) * * 2 ) * * 0.5 > = 0.5 : control = controller . run _ step ( RRT _ planner . v * 3.6 / 3 ) control _ obs = controller _ obs . run _ step ( v _ obs * 3.6 / 3 ) p1 = np . array ( [ w _ x , w _ y ] ) p2 = np . array ( [ w _ x2 , w _ y2 ] ) p3 = np . array ( [ wheel _ F _ x , wheel _ F _ y ] ) trans = CARLA _ world . ego _ vehicle . get _ transform ( ) yaw = trans . rotation . yaw phi = math . atan2 ( ( w _ y2 - w _ y ) , ( w _ x2 - w _ x ) ) - yaw * ( math . pi / 180 ) d = np . cross ( p2 - p1 , p3 - p1 ) / np . linalg . norm ( p2 - p1 ) kp = 3 ks = 0.2 Vel = CARLA _ world . ego _ vehicle . get _ velocity ( ) v = math . sqrt ( Vel . x * * 2 + Vel . y * * 2 ) control . steer = ( - math . atan2 ( kp * d , \u200b \u8f68\u8ff9 \u5982\u4e0b \uff1a \u56fe\u4e2d \u84dd\u8272 \u7684 \u66f2\u7ebf \u8868\u793a \u8f66\u8f86 \u4ece \u8d77\u70b9 \u5230 \u7ec8\u70b9 \u7684 \u884c\u9a76 \u8def\u5f84 \u3002 \u4ece\u56fe \u4e2d \u53ef\u4ee5 \u770b\u51fa \uff0c \u8f66\u8f86 \u5148\u662f \u6cbf\u7740 x \u8f74\u5411 \u53f3 \u884c\u9a76 \uff0c \u7136\u540e \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u540e \u5f00\u59cb \u5411 \u5de6\u4e0b \u4e0b\u65b9 \u5de6\u4e0b\u65b9 \u8f6c\u5f2f \uff0c \u6700\u540e \u5230\u8fbe \u7ec8\u70b9 \u3002","title":"\u8def\u7ebf \u89c4\u5212"},{"location":"course/motion_planning/#_1","text":"\u200b \u6b64 \u793a\u4f8b \u5728 Carla \u4eff\u771f \u73af\u5883 \u4e2d \uff0c \u4f7f\u7528 RRT \u8def\u5f84 \u89c4\u5212 \u548c PID \u63a7\u5236 \u8fdb\u884c \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8def\u5f84 \u8ddf\u8e2a \uff0c RRT \u7b97\u6cd5 \u80fd\u591f \u5728 \u590d\u6742 \u7684 \u73af\u5883 \u4e2d \u5feb\u901f \u627e\u5230 \u4ece \u8d77\u70b9 \u5230 \u7ec8\u70b9 \u7684 \u8def\u5f84 \uff0c \u540c\u65f6 \u907f\u5f00 \u969c\u788d \u969c\u788d\u7269 \uff1b PID \u63a7\u5236 \u63a7\u5236\u5668 \u6839\u636e \u8def\u5f84 \u7684 \u66f2\u7387 \u548c \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u8c03\u6574 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u786e\u4fdd \u8f66\u8f86 \u80fd\u591f \u6309\u7167 \u89c4\u5212 \u7684 \u8def\u5f84 \u884c\u9a76 \u3002","title":"\u8def\u7ebf \u89c4\u5212"},{"location":"course/motion_planning/#_2","text":"Python 3.7 CARLA \u4eff\u771f \u73af\u5883 \u5b89\u88c5 \u5fc5\u8981 \u7684 Python \u5e93 main _ v4 _ VO \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor )","title":"\u73af\u5883 \u8981\u6c42"},{"location":"course/motion_planning/#carla","text":"\u200b \u5bfc\u5165 CARLA \u6a21\u5757 \uff0c \u5e76 \u6dfb\u52a0 \u5fc5\u8981 \u7684 \u8def\u5f84 \u3002 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 ] ) import carla except IndexError : pass","title":"\u5bfc\u5165 CARLA \u6a21\u5757"},{"location":"course/motion_planning/#rednerobject","text":"\u8be5\u7c7b \u4e3b\u8981 \u7528\u4e8e \u62a5\u9519 \u548c \u4f20\u9012 pygame \u5bf9\u8c61 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) )","title":"RednerObject \u7c7b"},{"location":"course/motion_planning/#pygame_callback","text":"\u200b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \u51fd\u6570 \uff0c \u5c06 \u76f8\u673a \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u8f6c\u6362 \u4e3a 2D RGB \u56fe\u50cf \uff0c \u5e76 \u5e94\u7528 \u4e8e Pygame \u3002 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 ) )","title":"pygame _ callback \u51fd\u6570"},{"location":"course/motion_planning/#carla_world","text":"\u8be5\u7c7b \u7528\u4e8e \u8fde\u63a5 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u7ba1\u7406 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 class CARLA _ world : def __ init __ ( self ) : self . client = carla . Client ( ' localhost ' , 2000 ) self . client . set _ timeout ( 120.0 ) self . carla _ world = self . client . get _ world ( ) self . map = self . carla _ world . get _ map ( ) print ( \" WORLD READY \" ) settings = self . carla _ world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.02 self . carla _ world . apply _ settings ( settings ) self . spectator = self . carla _ world . get _ spectator ( ) self . vehicles = [ ] self . ego _ vehicle = None","title":"CARLA _ world \u7c7b"},{"location":"course/motion_planning/#_3","text":"","title":"\u4e3b\u7a0b\u5e8f"},{"location":"course/motion_planning/#carla_1","text":"\u521b\u5efa Carla \u4e16\u754c \u5b9e\u4f8b \uff0c \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \uff0c \u751f\u6210 \u81ea\u8f66 \u548c \u969c\u788d \u8f66\u8f86 \u3002 CARLA _ world = CARLA _ world ( ) spawn _ points = CARLA _ world . map . get _ spawn _ points ( ) target _ speed = 3.0 v _ obs = 3.0 spawn _ point1 = carla . Transform ( carla . Location ( x = 428 , y = - 51.9 , z = 0.3 ) , carla . Rotation ( yaw = 89 ) ) blueprint _ library = CARLA _ world . carla _ world . get _ blueprint _ library ( ) bp1 = blueprint _ library . filter ( \" model3 \" ) [ 0 ] vehicle1 = CARLA _ world . carla _ world . spawn _ actor ( bp1 , spawn _ point1 ) CARLA _ world . vehicles . append ( vehicle1 ) spawn _ point3 = carla . Transform ( carla . Location ( x = 404 , y = - 14 , z = 0.3 ) , carla . Rotation ( yaw = 0 ) ) bp3 = blueprint _ library . filter ( \" model3 \" ) [ 0 ] CARLA _ world . ego _ vehicle = CARLA _ world . carla _ world . spawn _ actor ( bp3 , spawn _ point3 )","title":"\u521d\u59cb\u5316 Carla \u4e16\u754c \u5bf9\u8c61"},{"location":"course/motion_planning/#_4","text":"\u200b \u5c06 \u76f8\u673a \u9644\u52a0 \u5230 \u81ea \u8f66\u4e0a \uff0c \u5e76 \u8bbe\u7f6e \u56de\u8c03 \u51fd\u6570 \u5904\u7406 \u76f8\u673a \u56fe\u50cf \u3002 camera _ init _ trans = carla . Transform ( carla . Location ( x = - 10 , y = - 4 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = CARLA _ world . carla _ world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , str ( VIEW _ WIDTH ) ) camera _ bp . set _ attribute ( ' image _ size _ y ' , str ( VIEW _ HEIGHT ) ) camera _ bp . set _ attribute ( ' fov ' , str ( VIEW _ FOV ) ) camera = CARLA _ world . carla _ world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = CARLA _ world . ego _ vehicle ) renderObject = RenderObject ( VIEW _ WIDTH , VIEW _ HEIGHT ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) )","title":"\u521d\u59cb\u5316 \u76f8\u673a"},{"location":"course/motion_planning/#pygame","text":"\u200b \u521d\u59cb \u521d\u59cb\u5316 Pygame \u7a97\u53e3 \uff0c \u5e76 \u8bbe\u7f6e \u76f8\u5e94 \u6807\u9898 \u3002 pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( VIEW _ WIDTH , VIEW _ HEIGHT ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) pygame . display . set _ caption ( \" Camera View \" )","title":"\u521d\u59cb\u5316 Pygame"},{"location":"course/motion_planning/#_5","text":"\u200b \u4f7f\u7528 RRT \u7b97\u6cd5 \u8fdb\u884c \u8f68\u8ff9 \u89c4\u5212 \uff0c \u5e76 \u901a\u8fc7 PID \u63a7\u5236 \u63a7\u5236\u5668 \u8fdb\u884c \u8f66\u8f86 \u8def\u5f84 \u8ddf\u8e2a \u3002 goal = CARLA _ world . map . get _ waypoint ( carla . Location ( x = 444 , y = - 14 ) , project _ to _ road = True ) CARLA _ world . carla _ world . tick ( ) trans = CARLA _ world . vehicles [ 0 ] . get _ transform ( ) v _ obs = 7.8 obstacles = [ trans , v _ obs ] RRT _ planner = RRT _ VO ( CARLA _ world , goal , obstacles ) RRT _ planner . RRT _ star ( n _ pts = 1000 ) path = RRT _ planner . path path _ x = [ ] path _ y = [ ] trans = CARLA _ world . ego _ vehicle . get _ transform ( ) thetai = trans . rotation . yaw * math . pi / 180 final _ theta = thetai for i in range ( len ( path ) - 1 ) : if i = = len ( path ) - 2 : thetaf = final _ theta else : x1 , y1 = path [ i + 1 ] . x , path [ i + 1 ] . y x2 , y2 = path [ i + 2 ] . x , path [ i + 2 ] . y thetaf = math . atan2 ( ( y2 - y1 ) , ( x2 - x1 ) ) primitive = motion _ primitive ( thetai , thetaf , path [ i ] . x , path [ i + 1 ] . x , path [ i ] . y , path [ i + 1 ] . y ) primitive . cubic _ T _ Matrix ( ) primitive . trajectory ( ) pos _ x , pos _ y = primitive . get _ path ( 0.05 ) path _ x + = pos _ x path _ y + = pos _ y thetai = thetaf","title":"\u8f68\u8ff9 \u89c4\u5212 \u548c \u63a7\u5236"},{"location":"course/motion_planning/#_6","text":"\u200b \u5728 Pygame \u7a97\u53e3 \u4e2d \u663e\u793a \u76f8\u673a \u89c6\u89d2 \uff0c \u5e76 \u6839\u636e RRT \u89c4\u5212 \u7684 \u8def\u5f84 \u63a7\u5236 \u8f66\u8f86 \u79fb\u52a8 \u3002 controller = VehiclePIDController ( CARLA _ world . ego _ vehicle , [ 1.0 , 0.05 , 0.1 ] , [ 0.5 , 0.05 , 0.1 ] ) controller _ obs = VehiclePIDController ( CARLA _ world . vehicles [ 0 ] , [ 1.0 , 0.05 , 0.1 ] , [ 0.5 , 0.05 , 0.1 ] ) actual _ x = [ ] actual _ y = [ ] ti = time . time ( ) for i in range ( len ( path _ x ) - 1 ) : trans = CARLA _ world . ego _ vehicle . get _ transform ( ) loc _ x , loc _ y = trans . location . x , trans . location . y w _ x , w _ y = path _ x [ i ] , path _ y [ i ] w _ x2 , w _ y2 = path _ x [ i + 1 ] , path _ y [ i + 1 ] phi = math . atan2 ( ( w _ y2 - w _ y ) , ( w _ x2 - w _ x ) ) physics = CARLA _ world . ego _ vehicle . get _ physics _ control ( ) wheels = physics . wheels wheel _ F _ x = ( wheels [ 0 ] . position . x + wheels [ 1 ] . position . x ) / 200 wheel _ F _ y = ( wheels [ 0 ] . position . y + wheels [ 1 ] . position . y ) / 200 while ( ( wheel _ F _ x - w _ x2 ) * * 2 + ( wheel _ F _ y - w _ y2 ) * * 2 ) * * 0.5 > = 0.5 : control = controller . run _ step ( RRT _ planner . v * 3.6 / 3 ) control _ obs = controller _ obs . run _ step ( v _ obs * 3.6 / 3 ) p1 = np . array ( [ w _ x , w _ y ] ) p2 = np . array ( [ w _ x2 , w _ y2 ] ) p3 = np . array ( [ wheel _ F _ x , wheel _ F _ y ] ) trans = CARLA _ world . ego _ vehicle . get _ transform ( ) yaw = trans . rotation . yaw phi = math . atan2 ( ( w _ y2 - w _ y ) , ( w _ x2 - w _ x ) ) - yaw * ( math . pi / 180 ) d = np . cross ( p2 - p1 , p3 - p1 ) / np . linalg . norm ( p2 - p1 ) kp = 3 ks = 0.2 Vel = CARLA _ world . ego _ vehicle . get _ velocity ( ) v = math . sqrt ( Vel . x * * 2 + Vel . y * * 2 ) control . steer = ( - math . atan2 ( kp * d , \u200b \u8f68\u8ff9 \u5982\u4e0b \uff1a \u56fe\u4e2d \u84dd\u8272 \u7684 \u66f2\u7ebf \u8868\u793a \u8f66\u8f86 \u4ece \u8d77\u70b9 \u5230 \u7ec8\u70b9 \u7684 \u884c\u9a76 \u8def\u5f84 \u3002 \u4ece\u56fe \u4e2d \u53ef\u4ee5 \u770b\u51fa \uff0c \u8f66\u8f86 \u5148\u662f \u6cbf\u7740 x \u8f74\u5411 \u53f3 \u884c\u9a76 \uff0c \u7136\u540e \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u540e \u5f00\u59cb \u5411 \u5de6\u4e0b \u4e0b\u65b9 \u5de6\u4e0b\u65b9 \u8f6c\u5f2f \uff0c \u6700\u540e \u5230\u8fbe \u7ec8\u70b9 \u3002","title":"\u5faa\u73af \u79fb\u52a8"},{"location":"course/multi-view_camera/","text":"\u914d\u7f6e \u591a \u89c6\u89d2 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . py \u4ecb\u7ecd \u6b64 \u811a\u672c \u8fde\u63a5 \u5230 CARLA \u4eff\u771f \u73af\u5883 \uff0c \u5728 \u8f66\u8f86 \u7684 \u5de6\u53f3 \u4e24\u4fa7 \u8bbe\u7f6e \u76f8\u673a \uff0c \u5e76 \u4f7f\u7528 Pygame \u663e\u793a \u76f8\u673a \u6355\u83b7 \u7684 \u5b9e\u65f6 \u56fe\u50cf \u3002 \u7cfb\u7edf \u91c7\u7528 \u591a \u8fdb\u7a0b \u67b6\u6784 \uff0c \u786e\u4fdd \u5de6\u53f3 \u76f8\u673a \u56fe\u50cf \u5206\u522b \u5728 \u4e0d\u540c \u7a97\u53e3 \u4e2d \u5b9e\u65f6 \u663e\u793a \u3002 \u73af\u5883 \u8981\u6c42 Python 3.6 \u53ca \u4ee5\u4e0a \u7248\u672c CARLA \u4eff\u771f \u73af\u5883 \u5b89\u88c5 \u5fc5\u8981 \u7684 Python \u5e93 \uff1a camera . py \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) pip install carla pygame numpy opencv - python \u811a\u672c \u7ed3\u6784 \u521d\u59cb \u521d\u59cb\u5316 def __ init __ ( self ) : self . client = None self . world = None self . camera _ left = None self . camera _ right = None self . car = None self . image _ left = None self . image _ right = None self . capture = True \u521d\u59cb \u521d\u59cb\u5316 CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u3001 \u4e16\u754c \u3001 \u8f66\u8f86 \u548c \u76f8\u673a \u53d8\u91cf \u3002 \u76f8\u673a \u8bbe\u7f6e def setup _ camera ( self ) : # \u8bbe\u7f6e \u76f8\u673a \u7684 \u53d8\u6362 \u6362\u4f4d \u4f4d\u7f6e \u53d8\u6362\u4f4d\u7f6e \u5e76 \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a # \u5de6 \u76f8\u673a left _ camera _ transform = carla . Transform ( carla . Location ( x = - 1.6 , y = - 1.5 , z = 1.7 ) ) self . camera _ left = self . world . spawn _ actor ( self . camera _ bp ( ) , left _ camera _ transform , attach _ to = self . car ) # \u53f3 \u76f8\u673a right _ camera _ transform = carla . Transform ( carla . Location ( x = - 1.6 , y = 1.5 , z = 1.7 ) ) self . camera _ right = self . world . spawn _ actor ( self . camera _ bp ( ) , right _ camera _ transform , attach _ to = self . car ) # \u76d1\u542c \u5de6\u53f3 \u76f8\u673a \u56fe\u50cf weak _ self = weakref . ref ( self ) self . camera _ left . listen ( lambda image : weak _ self ( ) . set _ image ( weak _ self , ' left ' , image ) ) self . camera _ right . listen ( lambda image : weak _ self ( ) . set _ image ( weak _ self , ' right ' , image ) ) \u5728 \u8f66\u8f86 \u7684 \u5de6\u53f3 \u4e24\u4fa7 \u751f\u6210 \u76f8\u673a \uff0c \u5e76 \u8bbe\u7f6e \u76d1\u542c \u76d1\u542c\u5668 \u6355\u83b7 \u76f8\u673a \u56fe\u50cf \u3002 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 @ staticmethod def set _ image ( weak _ self , side , img ) : self = weak _ self ( ) if side = = ' left ' : self . image _ left = img elif side = = ' right ' : self . image _ right = img def get _ image _ array ( self , side ) : if side = = ' left ' and self . image _ left is not None : array = np . frombuffer ( self . image _ left . raw _ data , dtype = np . dtype ( \" uint8 \" ) ) array = array . reshape ( ( VIEW _ HEIGHT , VIEW _ WIDTH , 4 ) ) array = array [ : , : , : 3 ] # Drop alpha channel array = array [ : , : , : : - 1 ] # Convert from BGRA to RGB return array elif side = = ' right ' and self . image _ right is not None : array = np . frombuffer ( self . image _ right . raw _ data , dtype = np . dtype ( \" uint8 \" ) ) array = array . reshape ( ( VIEW _ HEIGHT , VIEW _ WIDTH , 4 ) ) array = array [ : , : , : 3 ] # Drop alpha channel array = array [ : , : , : : - 1 ] # Convert from BGRA to RGB return array else : return None \u5c06 \u76f8\u673a \u6355\u83b7 \u7684 \u56fe\u50cf \u4ece BGRA \u683c\u5f0f \u8f6c\u6362 \u4e3a RGB \u683c\u5f0f \uff0c \u5e76 \u53bb\u9664 Alpha \u901a\u9053 \u3002 \u6e32\u67d3 \u51fd\u6570 def render ( queue , side , x , y ) : pygame . init ( ) os . environ [ ' SDL _ VIDEO _ WINDOW _ POS ' ] = f \" { x } , { y } \" display = pygame . display . set _ mode ( ( VIEW _ WIDTH , VIEW _ HEIGHT ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) pygame . display . set _ caption ( f ' { side . capitalize ( ) } Camera ' ) clock = pygame . time . Clock ( ) try : while True : array = queue . get ( ) if array is None : break surface = pygame . surfarray . make _ surface ( array . swapaxes ( 0 , 1 ) ) display . blit ( surface , ( 0 , 0 ) ) pygame . display . flip ( ) for event in pygame . event . get ( ) : if event . type = = pygame . QUIT : return clock . tick _ busy _ loop ( 30 ) finally : pygame . quit ( ) \u4f7f\u7528 Pygame \u663e\u793a \u5de6\u53f3 \u76f8\u673a \u6355\u83b7 \u7684 \u56fe\u50cf \u3002 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u4e3a\u4e86 \u5728 CARLA \u4eff\u771f \u73af\u5883 \u4e2d \u521b\u5efa \u4e24\u4e2a \u7a97\u53e3 \u6765 \u663e\u793a \u8f66\u8f86 \u7684 \u5de6\u53f3 \u89c6\u89d2 \uff0c \u6211\u4eec \u9700\u8981 \u5229\u7528 Pygame \u548c \u591a \u8fdb\u7a0b \u6765 \u5b9e\u73b0 \u3002 left _ process = multiprocessing . Process ( target = render , args = ( left _ queue , ' left ' , 0 , 100 ) ) right _ process = multiprocessing . Process ( target = render , args = ( right _ queue , ' right ' , VIEW _ WIDTH + 10 , 100 ) )","title":"\u914d\u7f6e \u591a \u89c6\u89d2 \u6444\u50cf\u5934 camera . py"},{"location":"course/multi-view_camera/#camerapy","text":"","title":"\u914d\u7f6e \u591a \u89c6\u89d2 \u6444\u50cf\u5934 camera . py"},{"location":"course/multi-view_camera/#_1","text":"\u6b64 \u811a\u672c \u8fde\u63a5 \u5230 CARLA \u4eff\u771f \u73af\u5883 \uff0c \u5728 \u8f66\u8f86 \u7684 \u5de6\u53f3 \u4e24\u4fa7 \u8bbe\u7f6e \u76f8\u673a \uff0c \u5e76 \u4f7f\u7528 Pygame \u663e\u793a \u76f8\u673a \u6355\u83b7 \u7684 \u5b9e\u65f6 \u56fe\u50cf \u3002 \u7cfb\u7edf \u91c7\u7528 \u591a \u8fdb\u7a0b \u67b6\u6784 \uff0c \u786e\u4fdd \u5de6\u53f3 \u76f8\u673a \u56fe\u50cf \u5206\u522b \u5728 \u4e0d\u540c \u7a97\u53e3 \u4e2d \u5b9e\u65f6 \u663e\u793a \u3002","title":"\u4ecb\u7ecd"},{"location":"course/multi-view_camera/#_2","text":"Python 3.6 \u53ca \u4ee5\u4e0a \u7248\u672c CARLA \u4eff\u771f \u73af\u5883 \u5b89\u88c5 \u5fc5\u8981 \u7684 Python \u5e93 \uff1a camera . py \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) pip install carla pygame numpy opencv - python","title":"\u73af\u5883 \u8981\u6c42"},{"location":"course/multi-view_camera/#_3","text":"","title":"\u811a\u672c \u7ed3\u6784"},{"location":"course/multi-view_camera/#_4","text":"def __ init __ ( self ) : self . client = None self . world = None self . camera _ left = None self . camera _ right = None self . car = None self . image _ left = None self . image _ right = None self . capture = True \u521d\u59cb \u521d\u59cb\u5316 CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u3001 \u4e16\u754c \u3001 \u8f66\u8f86 \u548c \u76f8\u673a \u53d8\u91cf \u3002","title":"\u521d\u59cb\u5316"},{"location":"course/multi-view_camera/#_5","text":"def setup _ camera ( self ) : # \u8bbe\u7f6e \u76f8\u673a \u7684 \u53d8\u6362 \u6362\u4f4d \u4f4d\u7f6e \u53d8\u6362\u4f4d\u7f6e \u5e76 \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a # \u5de6 \u76f8\u673a left _ camera _ transform = carla . Transform ( carla . Location ( x = - 1.6 , y = - 1.5 , z = 1.7 ) ) self . camera _ left = self . world . spawn _ actor ( self . camera _ bp ( ) , left _ camera _ transform , attach _ to = self . car ) # \u53f3 \u76f8\u673a right _ camera _ transform = carla . Transform ( carla . Location ( x = - 1.6 , y = 1.5 , z = 1.7 ) ) self . camera _ right = self . world . spawn _ actor ( self . camera _ bp ( ) , right _ camera _ transform , attach _ to = self . car ) # \u76d1\u542c \u5de6\u53f3 \u76f8\u673a \u56fe\u50cf weak _ self = weakref . ref ( self ) self . camera _ left . listen ( lambda image : weak _ self ( ) . set _ image ( weak _ self , ' left ' , image ) ) self . camera _ right . listen ( lambda image : weak _ self ( ) . set _ image ( weak _ self , ' right ' , image ) ) \u5728 \u8f66\u8f86 \u7684 \u5de6\u53f3 \u4e24\u4fa7 \u751f\u6210 \u76f8\u673a \uff0c \u5e76 \u8bbe\u7f6e \u76d1\u542c \u76d1\u542c\u5668 \u6355\u83b7 \u76f8\u673a \u56fe\u50cf \u3002","title":"\u76f8\u673a \u8bbe\u7f6e"},{"location":"course/multi-view_camera/#_6","text":"@ staticmethod def set _ image ( weak _ self , side , img ) : self = weak _ self ( ) if side = = ' left ' : self . image _ left = img elif side = = ' right ' : self . image _ right = img def get _ image _ array ( self , side ) : if side = = ' left ' and self . image _ left is not None : array = np . frombuffer ( self . image _ left . raw _ data , dtype = np . dtype ( \" uint8 \" ) ) array = array . reshape ( ( VIEW _ HEIGHT , VIEW _ WIDTH , 4 ) ) array = array [ : , : , : 3 ] # Drop alpha channel array = array [ : , : , : : - 1 ] # Convert from BGRA to RGB return array elif side = = ' right ' and self . image _ right is not None : array = np . frombuffer ( self . image _ right . raw _ data , dtype = np . dtype ( \" uint8 \" ) ) array = array . reshape ( ( VIEW _ HEIGHT , VIEW _ WIDTH , 4 ) ) array = array [ : , : , : 3 ] # Drop alpha channel array = array [ : , : , : : - 1 ] # Convert from BGRA to RGB return array else : return None \u5c06 \u76f8\u673a \u6355\u83b7 \u7684 \u56fe\u50cf \u4ece BGRA \u683c\u5f0f \u8f6c\u6362 \u4e3a RGB \u683c\u5f0f \uff0c \u5e76 \u53bb\u9664 Alpha \u901a\u9053 \u3002","title":"\u56fe\u50cf\u5904\u7406"},{"location":"course/multi-view_camera/#_7","text":"def render ( queue , side , x , y ) : pygame . init ( ) os . environ [ ' SDL _ VIDEO _ WINDOW _ POS ' ] = f \" { x } , { y } \" display = pygame . display . set _ mode ( ( VIEW _ WIDTH , VIEW _ HEIGHT ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) pygame . display . set _ caption ( f ' { side . capitalize ( ) } Camera ' ) clock = pygame . time . Clock ( ) try : while True : array = queue . get ( ) if array is None : break surface = pygame . surfarray . make _ surface ( array . swapaxes ( 0 , 1 ) ) display . blit ( surface , ( 0 , 0 ) ) pygame . display . flip ( ) for event in pygame . event . get ( ) : if event . type = = pygame . QUIT : return clock . tick _ busy _ loop ( 30 ) finally : pygame . quit ( ) \u4f7f\u7528 Pygame \u663e\u793a \u5de6\u53f3 \u76f8\u673a \u6355\u83b7 \u7684 \u56fe\u50cf \u3002","title":"\u6e32\u67d3 \u51fd\u6570"},{"location":"course/multi-view_camera/#_8","text":"\u4e3a\u4e86 \u5728 CARLA \u4eff\u771f \u73af\u5883 \u4e2d \u521b\u5efa \u4e24\u4e2a \u7a97\u53e3 \u6765 \u663e\u793a \u8f66\u8f86 \u7684 \u5de6\u53f3 \u89c6\u89d2 \uff0c \u6211\u4eec \u9700\u8981 \u5229\u7528 Pygame \u548c \u591a \u8fdb\u7a0b \u6765 \u5b9e\u73b0 \u3002 left _ process = multiprocessing . Process ( target = render , args = ( left _ queue , ' left ' , 0 , 100 ) ) right _ process = multiprocessing . Process ( target = render , args = ( right _ queue , ' right ' , VIEW _ WIDTH + 10 , 100 ) )","title":"\u591a\u7ebf\u7a0b"},{"location":"course/navigation/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8fd0\u884c \u8f68\u8ff9 \u200b \u8f66\u8f86 \u8fd0\u52a8 \u652f\u6301 \u5b9a\u4e49 \u8f66\u8f86 \u8fd0\u52a8 \u8d77\u70b9 \u548c \u76ee\u6807 \u4f4d\u7f6e \uff0c \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6307\u5b9a \u968f\u673a \u901f\u5ea6 \u503c \uff0c \u4f7f \u5176 \u6cbf \u8f68\u8ff9 \u79fb\u52a8 \u65f6 \u4e0d\u4f1a \u53d1\u751f \u78b0\u649e \u6216 \u6a21\u62df \u78b0\u649e \uff0c \u770b\u5230 \u8f66\u8f86 \u6cbf \u6307\u5b9a \u8f68\u8ff9 \u884c\u9a76 \u4ee5 \u5230\u8fbe \u5176 \u76ee\u6807 \u4f4d\u7f6e \u3002 \u200b \u672c \u793a\u4f8b \u8bbe\u8ba1 \u4e86 \u4e00\u4e2a automatic _ control _ revised . py \u811a\u672c \u8fdb\u884c \u5b9e\u73b0 \u6ce8\u610f \u9700\u8981 \u5c06 agents \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4f4d\u7f6e \u6dfb\u52a0 \u5230 \u4ee3\u7801 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4e2d \uff0c \u6216\u8005 \u590d\u5236 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4f7f \u5176 \u4e0e \u672c \u793a\u4f8b \u811a\u672c \u540c\u7ea7 \u3002 \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u751f\u6210 \u4f4d\u7f6e \u7684 \u8d77\u59cb \u70b9 \u5750\u6807 diming = { \" \u5317\u95e8 \" : { \" x \" : 224.2 , \" y \" : 1.7 , \" z \" : 1 } , \" \u897f\u95e8 \" : { \" x \" : - 146 , \" y \" : - 161 , \" z \" : 10 } , \" \u695a \u67ab\u6865 \" : { \" x \" : 1.8 , \" y \" : - 15.9 , \" z \" : 30 } , \" \u695a\u67ab\u8f69 \" : { \" x \" : 14.8 , \" y \" : 64.7 , \" z \" : 20 } , \" \u65e5 \u65b0\u697c \" : { \" x \" : 58 , \" y \" : - 75 , \" z \" : 30 } , \" \u4f53\u80b2 \u4f53\u80b2\u9986 \" : { \" x \" : 160 , \" y \" : - 265 , \" z \" : 40 } , \" \u6e58\u6c5f \u697c \" : { \" x \" : - 2.4 , \" y \" : - 100 , \" z \" : 30 } , \" \u79d1\u6280 \u697c \" : { \" x \" : - 97.4 , \" y \" : - 217 , \" z \" : 15 } , } \u5b9a\u4e49 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- s ' , default = \" \u5317\u95e8 \" , type = str ) argparser . add _ argument ( ' -- e ' , default = \" \u897f\u95e8 \" , type = str ) argparser . add _ argument ( ' -- speed ' , default = 5 , type = int ) \u83b7\u53d6 \u4eff\u771f \u65f6\u95f4 \u5bf9\u8c61 \u53ca \u8bbe\u7f6e client = carla . Client ( ' localhost ' , 2000 ) client . set _ timeout ( 10 ) world = client . get _ world ( ) origin _ settings = world . get _ settings ( ) # \u8bbe\u7f6e settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u4ece \u8f66\u8f86 \u84dd\u56fe \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u5bf9\u8c61 \uff0c \u5e76 \u83b7\u53d6 \u8f66\u8f86 \u8d77\u70b9 \u5750\u6807 # \u751f\u6210 \u8f66\u8f86 \u548c \u4ee3\u7406 blueprint _ library = world . get _ blueprint _ library ( ) # \u5c06 diming \u5b57\u5178 \u4e2d \u7684 \u6bcf\u4e2a \u952e\u503c \u5bf9 \u8f6c\u6362 \u4e3a \u4e00\u4e2a carla . Location \u5bf9\u8c61 # \u83b7\u53d6 \u751f\u6210 \u70b9 locations = { key : carla . Location ( * * value ) for key , value in diming . items ( ) } spawn _ location = carla . Location ( locations [ args . s ] ) spawn _ rotation = carla . Rotation ( yaw = 180 ) spawn _ point = carla . Transform ( spawn _ location , spawn _ rotation ) # \u8f66\u8f86 \u8d77\u70b9 # \u751f\u6210 \u8f66\u8f86 ego _ vehicle _ bp = blueprint _ library . find ( ' vehicle . audi . tt ' ) ego _ vehicle _ bp . set _ attribute ( ' color ' , ' 100 , 250 , 250 ' ) vehicle = world . spawn _ actor ( ego _ vehicle _ bp , spawn _ point ) # \u63a8\u8fdb \u4eff\u771f \u73af\u5883 \u65f6\u95f4 world . tick ( ) \u751f\u6210 \u7ec8\u70b9 \uff0c \u7ed9 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u751f\u6210 \u4e00\u4e2a \u8f66\u8f86 \u8fd0\u884c \u8f68\u8ff9 \uff0c \u5b9a\u4e49 \u521d\u59cb \u901f\u5ea6 # \u8bbe\u7f6e \u521d\u59cb \u901f\u5ea6 vehicle . set _ target _ velocity ( carla . Vector3D ( args . speed , 0 , 0 ) ) # \u521b\u5efa \u4ee3\u7406 agent = BehaviorAgent ( vehicle , behavior = ' normal ' ) destination = carla . Location ( locations [ args . e ] ) start = vehicle . get _ location ( ) # \u751f\u6210 \u8f68\u8ff9 agent . set _ destination ( destination ) \u7ed9 \u76ee\u6807 \u8f66\u8f86 \u8bbe\u7f6e \u591a\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd9\u4e9b \u76f8\u673a \u53ef\u4ee5 \u63d0\u4f9b \u4e0d\u540c \u7684 \u89c6\u89d2 , \u7528\u4e8e \u89c2\u5bdf \u548c \u8bb0\u5f55 \u8f66\u8f86 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u884c\u4e3a \u3002 # \u67e5\u627e \u76f8\u673a \u84dd\u56fe camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u8bbe\u7f6e Camera \u7684 \u9644\u52a0 \u7c7b\u578b Camera \u8ddf\u968f \u8f66\u8f86 Atment _ SpringArmGhost = carla . AttachmentType . SpringArmGhost Atment _ Rigid = carla . AttachmentType . Rigid # \u8bbe\u7f6e \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u5b89\u88c5 \u4f4d\u7f6e \uff0c \u914d\u7f6e \u4e0a\u5e1d \u89c6\u56fe ( Camera \u65e0\u6cd5 \u5b9e\u73b0 \u4e0a\u5e1d \u89c6\u56fe \uff0c \u753b\u9762 \u4f1a \u6296\u52a8 ) Vehicle _ transform _ list = [ ( carla . Location ( z = 35 ) , carla . Rotation ( pitch = - 90 ) ) ] # \u8bbe\u7f6e camera \u7684 \u5b89\u88c5 \u4f4d\u7f6e \uff0c \u914d\u7f6e \u540e \u5f80\u524d \u89c6\u56fe \u4ee5\u53ca \u524d\u540e \u5de6\u53f3 \u524d\u540e\u5de6\u53f3 \u89c6\u56fe Camera _ transform _ list = [ ( carla . Transform ( carla . Location ( x = - 8 , y = 0 , z = 5 ) , carla . Rotation ( pitch = 15 , yaw = 0 , roll = 0 ) ) , Atment _ SpringArmGhost ) ] # \u62fc\u63a5 \u4e24\u4e2a transform _ list spectator _ transform _ list = Vehicle _ transform _ list + Camera _ transform _ list # \u4e0a\u5e1d \u89c6\u56fe \u5750\u6807 \u5750\u6807\u7cfb \u4ee5\u53ca \u6240\u6709 camera \u5bf9\u8c61 \u586b\u5165 spectator _ obj _ list \uff1b for spectator _ transform _ index in spectator _ transform _ list : # spectator _ transform _ list \u7b2c 0 \u4e2a \u5143\u7d20 \u4e3a \u4e0a\u5e1d \u89c6\u56fe \u5750\u6807 \u5750\u6807\u7cfb if spectator _ transform _ list . index ( spectator _ transform _ index ) = = 0 : spectator _ obj _ list . append ( spectator _ transform _ index ) # spectator _ transform _ list \u5176\u4f59 \u5143\u7d20 \u4e3a Camera \u5b89\u88c5 \u53c2\u6570 \uff0c \u4e0b\u9762 \u751f\u6210 Camera \u5bf9\u8c61 else : camera = world . spawn _ actor ( camera _ bp , spectator _ transform _ index [ 0 ] , attach _ to = vehicle , attachment _ type = spectator _ transform _ index [ 1 ] ) spectator _ obj _ list . append ( camera ) \u66f4\u65b0 \u4ee3\u7406 \u3001 \u5207\u6362 \u89c6\u89d2 \u3001 \u5904\u7406 \u4ee3\u7406 \u5c40\u90e8 \u89c4\u5212 \u5668\u4e2d \u7684 \u8def\u5f84 \u70b9 \u3002 # \u8bbe\u7f6e Vehicle _ transform _ list [ 0 ] \u4e3a \u521d\u59cb \u89c6\u56fe ( \u4e0a\u5e1d \u89c6\u56fe ) \uff1b spectator _ obj = Vehicle _ transform _ list [ 0 ] c = 1 while True : agent ._ update _ information ( ) world . tick ( ) if len ( agent ._ local _ planner ._ waypoints _ queue ) < 1 : time . sleep ( 2 ) print ( ' = = = = = = = = Success = = = = = = = = = = = = = ' ) break # top view spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) if c : # \u4e0a \u4e00\u4e2a spectator \u7684 \u7d22\u5f15 \u53f7 \uff1b last _ spectator _ obj _ index = spectator _ obj _ list . index ( spectator _ obj ) # \u8ba1\u7b97 \u4e0b \u4e00\u4e2a spectator \u7684 \u7d22\u5f15 \uff0c \u5982\u679c \u5217\u8868 \u7d22\u5f15 \u8d85\u9650 \u5219 \u91cd\u65b0 \u62ff \u7b2c 0 \u4e2a spectator \uff1b spectator _ obj _ index = last _ spectator _ obj _ index + 1 if len ( spectator _ obj _ list ) - last _ spectator _ obj _ index - 1 > 0 else 0 spectator _ obj = spectator _ obj _ list [ spectator _ obj _ index ] time . sleep ( 0.2 ) # \u66f4\u65b0 \u89c6\u56fe if spectator _ obj _ list . index ( spectator _ obj ) = = 0 : # \u8bbe\u7f6e \u4e0a\u5e1d \u89c6\u56fe Vehicle _ transform = carla . Transform ( vehicle . get _ transform ( ) . location + spectator _ obj _ list [ 0 ] [ 0 ] , spectator _ obj _ list [ 0 ] [ 1 ] ) world . get _ spectator ( ) . set _ transform ( Vehicle _ transform ) else : # \u8bbe\u7f6e \u5176\u4ed6 Camera \u89c6\u56fe world . get _ spectator ( ) . set _ transform ( spectator _ obj . get _ transform ( ) ) c = 0 # speed _ limit = vehicle . get _ speed _ limit ( ) # agent . get _ local _ planner ( ) . set _ speed ( 50 ) control = agent . run _ step ( debug = True ) vehicle . apply _ control ( control ) \u8f68\u8ff9 \u751f\u6210","title":"\u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8fd0\u884c \u8f68\u8ff9"},{"location":"course/navigation/#_1","text":"\u200b \u8f66\u8f86 \u8fd0\u52a8 \u652f\u6301 \u5b9a\u4e49 \u8f66\u8f86 \u8fd0\u52a8 \u8d77\u70b9 \u548c \u76ee\u6807 \u4f4d\u7f6e \uff0c \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6307\u5b9a \u968f\u673a \u901f\u5ea6 \u503c \uff0c \u4f7f \u5176 \u6cbf \u8f68\u8ff9 \u79fb\u52a8 \u65f6 \u4e0d\u4f1a \u53d1\u751f \u78b0\u649e \u6216 \u6a21\u62df \u78b0\u649e \uff0c \u770b\u5230 \u8f66\u8f86 \u6cbf \u6307\u5b9a \u8f68\u8ff9 \u884c\u9a76 \u4ee5 \u5230\u8fbe \u5176 \u76ee\u6807 \u4f4d\u7f6e \u3002 \u200b \u672c \u793a\u4f8b \u8bbe\u8ba1 \u4e86 \u4e00\u4e2a automatic _ control _ revised . py \u811a\u672c \u8fdb\u884c \u5b9e\u73b0 \u6ce8\u610f \u9700\u8981 \u5c06 agents \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4f4d\u7f6e \u6dfb\u52a0 \u5230 \u4ee3\u7801 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4e2d \uff0c \u6216\u8005 \u590d\u5236 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4f7f \u5176 \u4e0e \u672c \u793a\u4f8b \u811a\u672c \u540c\u7ea7 \u3002 \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u751f\u6210 \u4f4d\u7f6e \u7684 \u8d77\u59cb \u70b9 \u5750\u6807 diming = { \" \u5317\u95e8 \" : { \" x \" : 224.2 , \" y \" : 1.7 , \" z \" : 1 } , \" \u897f\u95e8 \" : { \" x \" : - 146 , \" y \" : - 161 , \" z \" : 10 } , \" \u695a \u67ab\u6865 \" : { \" x \" : 1.8 , \" y \" : - 15.9 , \" z \" : 30 } , \" \u695a\u67ab\u8f69 \" : { \" x \" : 14.8 , \" y \" : 64.7 , \" z \" : 20 } , \" \u65e5 \u65b0\u697c \" : { \" x \" : 58 , \" y \" : - 75 , \" z \" : 30 } , \" \u4f53\u80b2 \u4f53\u80b2\u9986 \" : { \" x \" : 160 , \" y \" : - 265 , \" z \" : 40 } , \" \u6e58\u6c5f \u697c \" : { \" x \" : - 2.4 , \" y \" : - 100 , \" z \" : 30 } , \" \u79d1\u6280 \u697c \" : { \" x \" : - 97.4 , \" y \" : - 217 , \" z \" : 15 } , } \u5b9a\u4e49 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- s ' , default = \" \u5317\u95e8 \" , type = str ) argparser . add _ argument ( ' -- e ' , default = \" \u897f\u95e8 \" , type = str ) argparser . add _ argument ( ' -- speed ' , default = 5 , type = int ) \u83b7\u53d6 \u4eff\u771f \u65f6\u95f4 \u5bf9\u8c61 \u53ca \u8bbe\u7f6e client = carla . Client ( ' localhost ' , 2000 ) client . set _ timeout ( 10 ) world = client . get _ world ( ) origin _ settings = world . get _ settings ( ) # \u8bbe\u7f6e settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u4ece \u8f66\u8f86 \u84dd\u56fe \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u5bf9\u8c61 \uff0c \u5e76 \u83b7\u53d6 \u8f66\u8f86 \u8d77\u70b9 \u5750\u6807 # \u751f\u6210 \u8f66\u8f86 \u548c \u4ee3\u7406 blueprint _ library = world . get _ blueprint _ library ( ) # \u5c06 diming \u5b57\u5178 \u4e2d \u7684 \u6bcf\u4e2a \u952e\u503c \u5bf9 \u8f6c\u6362 \u4e3a \u4e00\u4e2a carla . Location \u5bf9\u8c61 # \u83b7\u53d6 \u751f\u6210 \u70b9 locations = { key : carla . Location ( * * value ) for key , value in diming . items ( ) } spawn _ location = carla . Location ( locations [ args . s ] ) spawn _ rotation = carla . Rotation ( yaw = 180 ) spawn _ point = carla . Transform ( spawn _ location , spawn _ rotation ) # \u8f66\u8f86 \u8d77\u70b9 # \u751f\u6210 \u8f66\u8f86 ego _ vehicle _ bp = blueprint _ library . find ( ' vehicle . audi . tt ' ) ego _ vehicle _ bp . set _ attribute ( ' color ' , ' 100 , 250 , 250 ' ) vehicle = world . spawn _ actor ( ego _ vehicle _ bp , spawn _ point ) # \u63a8\u8fdb \u4eff\u771f \u73af\u5883 \u65f6\u95f4 world . tick ( ) \u751f\u6210 \u7ec8\u70b9 \uff0c \u7ed9 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u751f\u6210 \u4e00\u4e2a \u8f66\u8f86 \u8fd0\u884c \u8f68\u8ff9 \uff0c \u5b9a\u4e49 \u521d\u59cb \u901f\u5ea6 # \u8bbe\u7f6e \u521d\u59cb \u901f\u5ea6 vehicle . set _ target _ velocity ( carla . Vector3D ( args . speed , 0 , 0 ) ) # \u521b\u5efa \u4ee3\u7406 agent = BehaviorAgent ( vehicle , behavior = ' normal ' ) destination = carla . Location ( locations [ args . e ] ) start = vehicle . get _ location ( ) # \u751f\u6210 \u8f68\u8ff9 agent . set _ destination ( destination ) \u7ed9 \u76ee\u6807 \u8f66\u8f86 \u8bbe\u7f6e \u591a\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd9\u4e9b \u76f8\u673a \u53ef\u4ee5 \u63d0\u4f9b \u4e0d\u540c \u7684 \u89c6\u89d2 , \u7528\u4e8e \u89c2\u5bdf \u548c \u8bb0\u5f55 \u8f66\u8f86 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u884c\u4e3a \u3002 # \u67e5\u627e \u76f8\u673a \u84dd\u56fe camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u8bbe\u7f6e Camera \u7684 \u9644\u52a0 \u7c7b\u578b Camera \u8ddf\u968f \u8f66\u8f86 Atment _ SpringArmGhost = carla . AttachmentType . SpringArmGhost Atment _ Rigid = carla . AttachmentType . Rigid # \u8bbe\u7f6e \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u5b89\u88c5 \u4f4d\u7f6e \uff0c \u914d\u7f6e \u4e0a\u5e1d \u89c6\u56fe ( Camera \u65e0\u6cd5 \u5b9e\u73b0 \u4e0a\u5e1d \u89c6\u56fe \uff0c \u753b\u9762 \u4f1a \u6296\u52a8 ) Vehicle _ transform _ list = [ ( carla . Location ( z = 35 ) , carla . Rotation ( pitch = - 90 ) ) ] # \u8bbe\u7f6e camera \u7684 \u5b89\u88c5 \u4f4d\u7f6e \uff0c \u914d\u7f6e \u540e \u5f80\u524d \u89c6\u56fe \u4ee5\u53ca \u524d\u540e \u5de6\u53f3 \u524d\u540e\u5de6\u53f3 \u89c6\u56fe Camera _ transform _ list = [ ( carla . Transform ( carla . Location ( x = - 8 , y = 0 , z = 5 ) , carla . Rotation ( pitch = 15 , yaw = 0 , roll = 0 ) ) , Atment _ SpringArmGhost ) ] # \u62fc\u63a5 \u4e24\u4e2a transform _ list spectator _ transform _ list = Vehicle _ transform _ list + Camera _ transform _ list # \u4e0a\u5e1d \u89c6\u56fe \u5750\u6807 \u5750\u6807\u7cfb \u4ee5\u53ca \u6240\u6709 camera \u5bf9\u8c61 \u586b\u5165 spectator _ obj _ list \uff1b for spectator _ transform _ index in spectator _ transform _ list : # spectator _ transform _ list \u7b2c 0 \u4e2a \u5143\u7d20 \u4e3a \u4e0a\u5e1d \u89c6\u56fe \u5750\u6807 \u5750\u6807\u7cfb if spectator _ transform _ list . index ( spectator _ transform _ index ) = = 0 : spectator _ obj _ list . append ( spectator _ transform _ index ) # spectator _ transform _ list \u5176\u4f59 \u5143\u7d20 \u4e3a Camera \u5b89\u88c5 \u53c2\u6570 \uff0c \u4e0b\u9762 \u751f\u6210 Camera \u5bf9\u8c61 else : camera = world . spawn _ actor ( camera _ bp , spectator _ transform _ index [ 0 ] , attach _ to = vehicle , attachment _ type = spectator _ transform _ index [ 1 ] ) spectator _ obj _ list . append ( camera ) \u66f4\u65b0 \u4ee3\u7406 \u3001 \u5207\u6362 \u89c6\u89d2 \u3001 \u5904\u7406 \u4ee3\u7406 \u5c40\u90e8 \u89c4\u5212 \u5668\u4e2d \u7684 \u8def\u5f84 \u70b9 \u3002 # \u8bbe\u7f6e Vehicle _ transform _ list [ 0 ] \u4e3a \u521d\u59cb \u89c6\u56fe ( \u4e0a\u5e1d \u89c6\u56fe ) \uff1b spectator _ obj = Vehicle _ transform _ list [ 0 ] c = 1 while True : agent ._ update _ information ( ) world . tick ( ) if len ( agent ._ local _ planner ._ waypoints _ queue ) < 1 : time . sleep ( 2 ) print ( ' = = = = = = = = Success = = = = = = = = = = = = = ' ) break # top view spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) if c : # \u4e0a \u4e00\u4e2a spectator \u7684 \u7d22\u5f15 \u53f7 \uff1b last _ spectator _ obj _ index = spectator _ obj _ list . index ( spectator _ obj ) # \u8ba1\u7b97 \u4e0b \u4e00\u4e2a spectator \u7684 \u7d22\u5f15 \uff0c \u5982\u679c \u5217\u8868 \u7d22\u5f15 \u8d85\u9650 \u5219 \u91cd\u65b0 \u62ff \u7b2c 0 \u4e2a spectator \uff1b spectator _ obj _ index = last _ spectator _ obj _ index + 1 if len ( spectator _ obj _ list ) - last _ spectator _ obj _ index - 1 > 0 else 0 spectator _ obj = spectator _ obj _ list [ spectator _ obj _ index ] time . sleep ( 0.2 ) # \u66f4\u65b0 \u89c6\u56fe if spectator _ obj _ list . index ( spectator _ obj ) = = 0 : # \u8bbe\u7f6e \u4e0a\u5e1d \u89c6\u56fe Vehicle _ transform = carla . Transform ( vehicle . get _ transform ( ) . location + spectator _ obj _ list [ 0 ] [ 0 ] , spectator _ obj _ list [ 0 ] [ 1 ] ) world . get _ spectator ( ) . set _ transform ( Vehicle _ transform ) else : # \u8bbe\u7f6e \u5176\u4ed6 Camera \u89c6\u56fe world . get _ spectator ( ) . set _ transform ( spectator _ obj . get _ transform ( ) ) c = 0 # speed _ limit = vehicle . get _ speed _ limit ( ) # agent . get _ local _ planner ( ) . set _ speed ( 50 ) control = agent . run _ step ( debug = True ) vehicle . apply _ control ( control )","title":"\u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8fd0\u884c \u8f68\u8ff9"},{"location":"course/navigation/#_2","text":"","title":"\u8f68\u8ff9 \u751f\u6210"},{"location":"course/object_detection/","text":"\u57fa\u4e8e Carla \u4eff\u771f \u73af\u5883 \u7684 \u76ee\u6807 \u68c0\u6d4b object _ dection . py \u811a\u672c \u4e3b\u8981 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 YOLOv3 \u68c0\u6d4b \u8f66\u8f86 \u3002 \u76f8\u5173 \u94fe\u63a5 \u200b \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \uff0c \u5e76 \u8fd0\u884c generate _ traffic . py \u200b \u5bfc\u5165 \u5fc5\u8981 \u7684 \u5e93\u53ca \u53d8\u91cf import random import weakref import cv2 import pygame import numpy as np from imutils . video import FPS import carla VIEW _ WIDTH = 1920 / / 2 VIEW _ HEIGHT = 1080 / / 2 VIEW _ FOV = 90 \u200b \u52a0\u8f7d \u6a21\u578b \u548c \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 model = cv2 . dnn . readNet ( \" weights / yolov3 . weights \" , \" cfg / yolov3 . cfg \" ) classes = [ line . strip ( ) for line in open ( \" cfg / coco . names \" , \" r \" ) . readlines ( ) ] layers _ names = model . getLayerNames ( ) output _ layers = [ layers _ names [ i [ 0 ] - 1 ] for i in model . getUnconnectedOutLayers ( ) ] colors = np . random . uniform ( 0 , 255 , size = ( len ( classes ) , 3 ) ) \u200b \u5b9a\u4e49 \u7ed8\u5236 \u6807\u7b7e \u7684 \u51fd\u6570 def draw _ labels ( boxes , confs , colors , class _ ids , classes , img ) : indexes = cv2 . dnn . NMSBoxes ( boxes , confs , 0.5 , 0.4 ) font = cv2 . FONT _ HERSHEY _ PLAIN for i in range ( len ( boxes ) ) : if i in indexes : x , y , w , h = boxes [ i ] label = str ( classes [ class _ ids [ i ] ] ) color = colors [ i ] cv2 . rectangle ( img , ( x , y ) , ( x + w , y + h ) , color , 2 ) cv2 . putText ( img , label , ( x , y - 5 ) , font , 1 , color , 1 ) return img \u200b \u5b9a\u4e49 \u83b7\u53d6 \u6846 \u7ef4\u5ea6 \u7684 \u51fd\u6570 def get _ box _ dimensions ( outputs , height , width ) : boxes = [ ] confs = [ ] class _ ids = [ ] for output in outputs : for detect in output : scores = detect [ 5 : ] class _ id = np . argmax ( scores ) conf = scores [ class _ id ] if conf > 0.5 : center _ x = int ( detect [ 0 ] * width ) center _ y = int ( detect [ 1 ] * height ) w = int ( detect [ 2 ] * width ) h = int ( detect [ 3 ] * height ) x = int ( center _ x - w / 2 ) y = int ( center _ y - h / 2 ) boxes . append ( [ x , y , w , h ] ) confs . append ( float ( conf ) ) class _ ids . append ( class _ id ) return boxes , confs , class _ ids \u200b \u5b9a\u4e49 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b class CarlaClient ( ) : def __ init __ ( self ) : # \u521d\u59cb \u521d\u59cb\u5316 \u5b9e\u4f8b \u53d8\u91cf self . client = None self . world = None self . camera = None self . car = None self . image = None self . capture = True self . display = None def set _ synchronous _ mode ( self , synchronous _ mode ) : # \u8bbe\u7f6e Carla \u4e16\u754c \u7684 \u540c\u6b65 \u6a21\u5f0f settings = self . world . get _ settings ( ) settings . synchronous _ mode = synchronous _ mode self . world . apply _ settings ( settings ) def setup _ car ( self ) : # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u4e2d \u4e00\u4e2a \u6c7d\u8f66 \u5bf9\u8c61 blueprint _ library = self . world . get _ blueprint _ library ( ) car _ bp = blueprint _ library . filter ( ' vehicle . * ' ) [ 0 ] spawn _ point = random . choice ( self . world . get _ map ( ) . get _ spawn _ points ( ) ) self . car = self . world . spawn _ actor ( car _ bp , spawn _ point ) def setup _ camera ( self ) : # \u83b7\u53d6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5bf9\u8c61 \uff0c \u5e76 \u5c06 \u5176 \u9644\u52a0 \u5230 \u6c7d\u8f66 \u4e0a camera _ bp = self . world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera _ transform = carla . Transform ( carla . Location ( x = 1.5 , z = 2.4 ) ) camera _ bp . set _ attribute ( ' image _ size _ x ' , f ' { VIEW _ WIDTH } ' ) camera _ bp . set _ attribute ( ' image _ size _ y ' , f ' { VIEW _ HEIGHT } ' ) camera _ bp . set _ attribute ( ' fov ' , f ' { VIEW _ FOV } ' ) self . camera = self . world . spawn _ actor ( camera _ bp , camera _ transform , attach _ to = self . car ) weak _ self = weakref . ref ( self ) self . camera . listen ( lambda image : weak _ self ( ) . set _ image ( weak _ self , image ) ) @ staticmethod def set _ image ( weak _ self , img ) : # \u6355\u83b7 \u56fe\u50cf self = weak _ self ( ) if self . capture : self . image = img self . capture = False def render ( self , display ) : # \u6e32\u67d3 \u6355\u83b7 \u7684 \u56fe\u50cf \uff0c \u5e76 \u5728 \u56fe\u50cf \u4e0a \u7ed8\u5236 \u7269\u4f53 \u68c0\u6d4b \u6807\u7b7e if self . image is not None : array = np . frombuffer ( self . image . raw _ data , dtype = np . dtype ( \" uint8 \" ) ) array = np . reshape ( array , ( self . image . height , self . image . width , 4 ) ) array = array [ : , : , : 3 ] # draw labels img = cv2 . resize ( array , None , fx = 1 , fy = 1 ) height , width , channels = img . shape blob = cv2 . dnn . blobFromImage ( img , scalefactor = 0.00392 , size = ( 320 , 320 ) , mean = ( 0 , 0 , 0 ) , swapRB = True , crop = False ) model . setInput ( blob ) outputs = model . forward ( output _ layers ) boxes , confs , class _ ids = get _ box _ dimensions ( outputs , height , width ) array = draw _ labels ( boxes , confs , colors , class _ ids , classes , img ) array = array [ : , : , : : - 1 ] surface = pygame . surfarray . make _ surface ( array . swapaxes ( 0 , 1 ) ) display . blit ( surface , ( 0 , 0 ) ) \u200b main \u51fd\u6570 \u4e2d \u4e3b\u8981 \u662f \u5728 Carla \u6a21\u62df \u6a21\u62df\u5668 \u4e2d \u8fd0\u884c \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u5e76 \u901a\u8fc7 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6355\u83b7 \u56fe\u50cf \u540e \u91c7\u7528 YOLOv3 \u6a21\u578b \u8fdb\u884c \u8f66\u8f86 \u7269\u4f53 \u7684 \u68c0\u6d4b \uff0c \u6700\u540e \u4f7f\u7528 Pygame \u663e\u793a \u5904\u7406 \u540e \u7684 \u56fe\u50cf \u3002 if __ name __ = = ' __ main __ ' : cc = CarlaClient ( ) try : pygame . init ( ) clock = pygame . time . Clock ( ) cc . client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) cc . client . set _ timeout ( 5.0 ) cc . world = cc . client . get _ world ( ) cc . setup _ car ( ) cc . setup _ camera ( ) cc . display = pygame . display . set _ mode ( ( VIEW _ WIDTH , VIEW _ HEIGHT ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) pygame _ clock = pygame . time . Clock ( ) cc . car . set _ autopilot ( True ) while True : fps = FPS ( ) . start ( ) cc . world . tick ( ) cc . capture = True pygame _ clock . tick _ busy _ loop ( 30 ) cc . render ( cc . display ) pygame . display . flip ( ) pygame . event . pump ( ) cv2 . waitKey ( 1 ) fps . stop ( ) print ( \" [ INFO ] elapsed time : { : . 2f } \" . format ( fps . elapsed ( ) ) ) except Exception as e : print ( e ) finally : cc . set _ synchronous _ mode ( False ) cc . camera . destroy ( ) cc . car . destroy ( ) pygame . quit ( ) cv2 . destroyAllWindows ( )","title":"\u57fa\u4e8e Carla \u4eff\u771f \u73af\u5883 \u7684 \u76ee\u6807 \u68c0\u6d4b"},{"location":"course/object_detection/#carla","text":"object _ dection . py \u811a\u672c \u4e3b\u8981 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 YOLOv3 \u68c0\u6d4b \u8f66\u8f86 \u3002 \u76f8\u5173 \u94fe\u63a5 \u200b \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \uff0c \u5e76 \u8fd0\u884c generate _ traffic . py \u200b \u5bfc\u5165 \u5fc5\u8981 \u7684 \u5e93\u53ca \u53d8\u91cf import random import weakref import cv2 import pygame import numpy as np from imutils . video import FPS import carla VIEW _ WIDTH = 1920 / / 2 VIEW _ HEIGHT = 1080 / / 2 VIEW _ FOV = 90 \u200b \u52a0\u8f7d \u6a21\u578b \u548c \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 model = cv2 . dnn . readNet ( \" weights / yolov3 . weights \" , \" cfg / yolov3 . cfg \" ) classes = [ line . strip ( ) for line in open ( \" cfg / coco . names \" , \" r \" ) . readlines ( ) ] layers _ names = model . getLayerNames ( ) output _ layers = [ layers _ names [ i [ 0 ] - 1 ] for i in model . getUnconnectedOutLayers ( ) ] colors = np . random . uniform ( 0 , 255 , size = ( len ( classes ) , 3 ) ) \u200b \u5b9a\u4e49 \u7ed8\u5236 \u6807\u7b7e \u7684 \u51fd\u6570 def draw _ labels ( boxes , confs , colors , class _ ids , classes , img ) : indexes = cv2 . dnn . NMSBoxes ( boxes , confs , 0.5 , 0.4 ) font = cv2 . FONT _ HERSHEY _ PLAIN for i in range ( len ( boxes ) ) : if i in indexes : x , y , w , h = boxes [ i ] label = str ( classes [ class _ ids [ i ] ] ) color = colors [ i ] cv2 . rectangle ( img , ( x , y ) , ( x + w , y + h ) , color , 2 ) cv2 . putText ( img , label , ( x , y - 5 ) , font , 1 , color , 1 ) return img \u200b \u5b9a\u4e49 \u83b7\u53d6 \u6846 \u7ef4\u5ea6 \u7684 \u51fd\u6570 def get _ box _ dimensions ( outputs , height , width ) : boxes = [ ] confs = [ ] class _ ids = [ ] for output in outputs : for detect in output : scores = detect [ 5 : ] class _ id = np . argmax ( scores ) conf = scores [ class _ id ] if conf > 0.5 : center _ x = int ( detect [ 0 ] * width ) center _ y = int ( detect [ 1 ] * height ) w = int ( detect [ 2 ] * width ) h = int ( detect [ 3 ] * height ) x = int ( center _ x - w / 2 ) y = int ( center _ y - h / 2 ) boxes . append ( [ x , y , w , h ] ) confs . append ( float ( conf ) ) class _ ids . append ( class _ id ) return boxes , confs , class _ ids \u200b \u5b9a\u4e49 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b class CarlaClient ( ) : def __ init __ ( self ) : # \u521d\u59cb \u521d\u59cb\u5316 \u5b9e\u4f8b \u53d8\u91cf self . client = None self . world = None self . camera = None self . car = None self . image = None self . capture = True self . display = None def set _ synchronous _ mode ( self , synchronous _ mode ) : # \u8bbe\u7f6e Carla \u4e16\u754c \u7684 \u540c\u6b65 \u6a21\u5f0f settings = self . world . get _ settings ( ) settings . synchronous _ mode = synchronous _ mode self . world . apply _ settings ( settings ) def setup _ car ( self ) : # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u4e2d \u4e00\u4e2a \u6c7d\u8f66 \u5bf9\u8c61 blueprint _ library = self . world . get _ blueprint _ library ( ) car _ bp = blueprint _ library . filter ( ' vehicle . * ' ) [ 0 ] spawn _ point = random . choice ( self . world . get _ map ( ) . get _ spawn _ points ( ) ) self . car = self . world . spawn _ actor ( car _ bp , spawn _ point ) def setup _ camera ( self ) : # \u83b7\u53d6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5bf9\u8c61 \uff0c \u5e76 \u5c06 \u5176 \u9644\u52a0 \u5230 \u6c7d\u8f66 \u4e0a camera _ bp = self . world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera _ transform = carla . Transform ( carla . Location ( x = 1.5 , z = 2.4 ) ) camera _ bp . set _ attribute ( ' image _ size _ x ' , f ' { VIEW _ WIDTH } ' ) camera _ bp . set _ attribute ( ' image _ size _ y ' , f ' { VIEW _ HEIGHT } ' ) camera _ bp . set _ attribute ( ' fov ' , f ' { VIEW _ FOV } ' ) self . camera = self . world . spawn _ actor ( camera _ bp , camera _ transform , attach _ to = self . car ) weak _ self = weakref . ref ( self ) self . camera . listen ( lambda image : weak _ self ( ) . set _ image ( weak _ self , image ) ) @ staticmethod def set _ image ( weak _ self , img ) : # \u6355\u83b7 \u56fe\u50cf self = weak _ self ( ) if self . capture : self . image = img self . capture = False def render ( self , display ) : # \u6e32\u67d3 \u6355\u83b7 \u7684 \u56fe\u50cf \uff0c \u5e76 \u5728 \u56fe\u50cf \u4e0a \u7ed8\u5236 \u7269\u4f53 \u68c0\u6d4b \u6807\u7b7e if self . image is not None : array = np . frombuffer ( self . image . raw _ data , dtype = np . dtype ( \" uint8 \" ) ) array = np . reshape ( array , ( self . image . height , self . image . width , 4 ) ) array = array [ : , : , : 3 ] # draw labels img = cv2 . resize ( array , None , fx = 1 , fy = 1 ) height , width , channels = img . shape blob = cv2 . dnn . blobFromImage ( img , scalefactor = 0.00392 , size = ( 320 , 320 ) , mean = ( 0 , 0 , 0 ) , swapRB = True , crop = False ) model . setInput ( blob ) outputs = model . forward ( output _ layers ) boxes , confs , class _ ids = get _ box _ dimensions ( outputs , height , width ) array = draw _ labels ( boxes , confs , colors , class _ ids , classes , img ) array = array [ : , : , : : - 1 ] surface = pygame . surfarray . make _ surface ( array . swapaxes ( 0 , 1 ) ) display . blit ( surface , ( 0 , 0 ) ) \u200b main \u51fd\u6570 \u4e2d \u4e3b\u8981 \u662f \u5728 Carla \u6a21\u62df \u6a21\u62df\u5668 \u4e2d \u8fd0\u884c \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u5e76 \u901a\u8fc7 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6355\u83b7 \u56fe\u50cf \u540e \u91c7\u7528 YOLOv3 \u6a21\u578b \u8fdb\u884c \u8f66\u8f86 \u7269\u4f53 \u7684 \u68c0\u6d4b \uff0c \u6700\u540e \u4f7f\u7528 Pygame \u663e\u793a \u5904\u7406 \u540e \u7684 \u56fe\u50cf \u3002 if __ name __ = = ' __ main __ ' : cc = CarlaClient ( ) try : pygame . init ( ) clock = pygame . time . Clock ( ) cc . client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) cc . client . set _ timeout ( 5.0 ) cc . world = cc . client . get _ world ( ) cc . setup _ car ( ) cc . setup _ camera ( ) cc . display = pygame . display . set _ mode ( ( VIEW _ WIDTH , VIEW _ HEIGHT ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) pygame _ clock = pygame . time . Clock ( ) cc . car . set _ autopilot ( True ) while True : fps = FPS ( ) . start ( ) cc . world . tick ( ) cc . capture = True pygame _ clock . tick _ busy _ loop ( 30 ) cc . render ( cc . display ) pygame . display . flip ( ) pygame . event . pump ( ) cv2 . waitKey ( 1 ) fps . stop ( ) print ( \" [ INFO ] elapsed time : { : . 2f } \" . format ( fps . elapsed ( ) ) ) except Exception as e : print ( e ) finally : cc . set _ synchronous _ mode ( False ) cc . camera . destroy ( ) cc . car . destroy ( ) pygame . quit ( ) cv2 . destroyAllWindows ( )","title":"\u57fa\u4e8e Carla \u4eff\u771f \u73af\u5883 \u7684 \u76ee\u6807 \u68c0\u6d4b"},{"location":"course/recognize/","text":"\u884c\u4eba \u518d \u8bc6\u522b \u8be5 \u811a\u672c \u7684 \u76ee\u6807 \u662f \u901a\u8fc7 \u4f7f\u7528 \u9884 \u8bad\u7ec3 \u7684 ResNet - 50 \u6a21\u578b \uff0c \u6bd4\u8f83 \u4e24\u5f20 \u56fe\u7247 \u7684 \u7279\u5f81 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u3002 \u4e3b\u8981 \u6b65\u9aa4 \u5305\u62ec \u6570\u636e \u5904\u7406 \u9884\u5904\u7406 \u3001 \u7279\u5f81 \u63d0\u53d6 \u7279\u5f81\u63d0\u53d6 \u548c \u8ba1\u7b97 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u5ea6\u91cf \u3002 \u672c \u6587\u6863 \u5c06 \u8be6\u7ec6 \u8bf4\u660e \u6bcf\u4e2a \u6b65\u9aa4 \u7684 \u5b9e\u73b0 \u3002 \u73af\u5883 \u914d\u7f6e \u4f9d\u8d56 \u5e93 torch : PyTorch \u5e93 \uff0c \u7528\u4e8e \u6df1\u5ea6 \u5b66\u4e60 \u548c \u5f20\u91cf \u8ba1\u7b97 \u3002 torchvision : PyTorch \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u5de5\u5177 \u5de5\u5177\u5305 \uff0c \u63d0\u4f9b \u4e86 \u5e38\u7528 \u7684 \u6570\u636e \u589e\u5f3a \u65b9\u6cd5 \u3002 PIL ( Pillow ) : Python Imaging Library \uff0c \u7528\u4e8e \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u3002 torchreid : \u7528\u4e8e \u884c\u4eba \u91cd \u8bc6\u522b \u7684 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \u6240 \u9700\u5e93 \uff08 \u5b89\u88c5 \u65f6\u95f4 \u5b89\u88c5\u65f6\u95f4 \u8f83\u957f \uff09 \uff1a pip install torch torchvision torchaudio -- index - url https : / / download . pytorch . org / whl / cu118 \u4ee3\u7801 \u7ed3\u6784 1 . \u6570\u636e \u5904\u7406 \u9884\u5904\u7406 \u9996\u5148 \u5b9a\u4e49 \u4e00\u4e2a \u51fd\u6570 preprocess _ image \u6765 \u5904\u7406 \u9884\u5904\u7406 \u56fe\u50cf \uff1a def preprocess _ image ( image _ path ) : transform = transforms . Compose ( [ transforms . Resize ( ( 256 , 128 ) ) , transforms . ToTensor ( ) , transforms . Normalize ( mean = [ 0.485 , 0.456 , 0.406 ] , std = [ 0.229 , 0.224 , 0.225 ] ) ] ) image = Image . open ( image _ path ) . convert ( ' RGB ' ) image = transform ( image ) image = image . unsqueeze ( 0 ) # \u589e\u52a0 \u6279\u6b21 \u7ef4\u5ea6 return image 2 . \u6570\u636e \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff0c \u7528\u4e8e \u52a0\u8f7d Market1501 \u6570\u636e \u96c6 \uff1a datamanager = torchreid . data . ImageDataManager ( root = \" reid - data \" , sources = \" market1501 \" , targets = \" market1501 \" , height = 256 , width = 128 , batch _ size _ train = 32 , batch _ size _ test = 100 , transforms = [ \" random _ flip \" , \" random _ crop \" ] ) 3 . \u6a21\u578b \u6784\u5efa \u4e0e \u52a0\u8f7d \u6784\u5efa \u5e76 \u52a0\u8f7d \u9884 \u8bad\u7ec3 \u7684 ResNet - 50 \u6a21\u578b \uff1a model = torchreid . models . build _ model ( name = \" resnet50 \" , num _ classes = datamanager . num _ train _ pids , loss = \" softmax \" , pretrained = True # \u52a0\u8f7d ImageNet \u9884 \u8bad\u7ec3 \u6743\u91cd ) # \u5c06 \u6a21\u578b \u79fb\u52a8 \u5230 GPU model = model . cuda ( ) model . eval ( ) 4 . \u7279\u5f81 \u63d0\u53d6 \u7279\u5f81\u63d0\u53d6 \u4e0e \u76f8\u4f3c \u76f8\u4f3c\u6027 \u8ba1\u7b97 \u5b9a\u4e49 \u51fd\u6570 infer \u548c cosine _ similarity \u6765 \u63d0\u53d6 \u7279\u5f81 \u548c \u8ba1\u7b97 \u4f59\u5f26 \u76f8\u4f3c \u76f8\u4f3c\u6027 \uff1a def infer ( model , image _ tensor ) : with torch . no _ grad ( ) : image _ tensor = image _ tensor . cuda ( ) features = model ( image _ tensor ) return features def cosine _ similarity ( tensor1 , tensor2 ) : cos = torch . nn . CosineSimilarity ( dim = 1 , eps = 1e - 6 ) return cos ( tensor1 , tensor2 ) . item ( ) \u8fd0\u884c \u6b65\u9aa4 \u786e\u4fdd \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u5e93 \u3002 \u4e0b\u8f7d \u5e76 \u51c6\u5907 \u597d Market1501 \u6570\u636e \u96c6 \u3002 \u8fd0\u884c \u4e0a\u8ff0 Python \u4ee3\u7801 \uff0c \u786e\u4fdd \u56fe\u50cf \u8def\u5f84 \u6b63\u786e \u3002 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \u786e\u4fdd \u4f60 \u7684 \u663e\u5361 \u4e0e \u5f53\u524d \u5b89\u88c5 \u7684 PyTorch \u7248\u672c \u517c\u5bb9 \u3002 \u6d4b\u8bd5 \u6570\u636e \u6d4b\u8bd5\u6570\u636e \u96c6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u76ee\u5f55 \u6b63\u786e \uff0c \u5e76\u4e14 \u548c \u811a\u672c \u5728 \u540c \u4e00\u7ea7 \u3002 \u5982\u4e0b \u6240\u793a \uff1a reid - data / \u251c \u2500 \u2500 market1501 / \u251c \u2500 \u2500 bounding _ box _ train / \u251c \u2500 \u2500 bounding _ box _ test / \u251c \u2500 \u2500 query / \u2514 \u2500 \u2500 ... \u7ed3\u679c \u5206\u6790 \u4ee3\u7801 \u8fd0\u884c \u4ee3\u7801\u8fd0\u884c \u540e \u4f1a \u8f93\u51fa \u4e24\u5f20 \u56fe\u50cf \u7684 \u4f59\u5f26 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u3002 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u503c \u63a5\u8fd1 1 \u8868\u793a \u4e24\u5f20 \u56fe\u50cf \u7279\u5f81 \u76f8\u4f3c \u5ea6\u9ad8 \uff0c \u63a5\u8fd1 0 \u8868\u793a \u7279\u5f81 \u76f8\u4f3c \u5ea6\u4f4e \u3002","title":"\u884c\u4eba \u518d \u8bc6\u522b"},{"location":"course/recognize/#_1","text":"\u8be5 \u811a\u672c \u7684 \u76ee\u6807 \u662f \u901a\u8fc7 \u4f7f\u7528 \u9884 \u8bad\u7ec3 \u7684 ResNet - 50 \u6a21\u578b \uff0c \u6bd4\u8f83 \u4e24\u5f20 \u56fe\u7247 \u7684 \u7279\u5f81 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u3002 \u4e3b\u8981 \u6b65\u9aa4 \u5305\u62ec \u6570\u636e \u5904\u7406 \u9884\u5904\u7406 \u3001 \u7279\u5f81 \u63d0\u53d6 \u7279\u5f81\u63d0\u53d6 \u548c \u8ba1\u7b97 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u5ea6\u91cf \u3002 \u672c \u6587\u6863 \u5c06 \u8be6\u7ec6 \u8bf4\u660e \u6bcf\u4e2a \u6b65\u9aa4 \u7684 \u5b9e\u73b0 \u3002","title":"\u884c\u4eba \u518d \u8bc6\u522b"},{"location":"course/recognize/#_2","text":"","title":"\u73af\u5883 \u914d\u7f6e"},{"location":"course/recognize/#_3","text":"torch : PyTorch \u5e93 \uff0c \u7528\u4e8e \u6df1\u5ea6 \u5b66\u4e60 \u548c \u5f20\u91cf \u8ba1\u7b97 \u3002 torchvision : PyTorch \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u5de5\u5177 \u5de5\u5177\u5305 \uff0c \u63d0\u4f9b \u4e86 \u5e38\u7528 \u7684 \u6570\u636e \u589e\u5f3a \u65b9\u6cd5 \u3002 PIL ( Pillow ) : Python Imaging Library \uff0c \u7528\u4e8e \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u3002 torchreid : \u7528\u4e8e \u884c\u4eba \u91cd \u8bc6\u522b \u7684 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \u6240 \u9700\u5e93 \uff08 \u5b89\u88c5 \u65f6\u95f4 \u5b89\u88c5\u65f6\u95f4 \u8f83\u957f \uff09 \uff1a pip install torch torchvision torchaudio -- index - url https : / / download . pytorch . org / whl / cu118","title":"\u4f9d\u8d56 \u5e93"},{"location":"course/recognize/#_4","text":"","title":"\u4ee3\u7801 \u7ed3\u6784"},{"location":"course/recognize/#1","text":"\u9996\u5148 \u5b9a\u4e49 \u4e00\u4e2a \u51fd\u6570 preprocess _ image \u6765 \u5904\u7406 \u9884\u5904\u7406 \u56fe\u50cf \uff1a def preprocess _ image ( image _ path ) : transform = transforms . Compose ( [ transforms . Resize ( ( 256 , 128 ) ) , transforms . ToTensor ( ) , transforms . Normalize ( mean = [ 0.485 , 0.456 , 0.406 ] , std = [ 0.229 , 0.224 , 0.225 ] ) ] ) image = Image . open ( image _ path ) . convert ( ' RGB ' ) image = transform ( image ) image = image . unsqueeze ( 0 ) # \u589e\u52a0 \u6279\u6b21 \u7ef4\u5ea6 return image","title":"1 . \u6570\u636e \u9884\u5904\u7406"},{"location":"course/recognize/#2","text":"\u521b\u5efa \u4e00\u4e2a \u6570\u636e \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff0c \u7528\u4e8e \u52a0\u8f7d Market1501 \u6570\u636e \u96c6 \uff1a datamanager = torchreid . data . ImageDataManager ( root = \" reid - data \" , sources = \" market1501 \" , targets = \" market1501 \" , height = 256 , width = 128 , batch _ size _ train = 32 , batch _ size _ test = 100 , transforms = [ \" random _ flip \" , \" random _ crop \" ] )","title":"2 . \u6570\u636e \u7ba1\u7406\u5668"},{"location":"course/recognize/#3","text":"\u6784\u5efa \u5e76 \u52a0\u8f7d \u9884 \u8bad\u7ec3 \u7684 ResNet - 50 \u6a21\u578b \uff1a model = torchreid . models . build _ model ( name = \" resnet50 \" , num _ classes = datamanager . num _ train _ pids , loss = \" softmax \" , pretrained = True # \u52a0\u8f7d ImageNet \u9884 \u8bad\u7ec3 \u6743\u91cd ) # \u5c06 \u6a21\u578b \u79fb\u52a8 \u5230 GPU model = model . cuda ( ) model . eval ( )","title":"3 . \u6a21\u578b \u6784\u5efa \u4e0e \u52a0\u8f7d"},{"location":"course/recognize/#4","text":"\u5b9a\u4e49 \u51fd\u6570 infer \u548c cosine _ similarity \u6765 \u63d0\u53d6 \u7279\u5f81 \u548c \u8ba1\u7b97 \u4f59\u5f26 \u76f8\u4f3c \u76f8\u4f3c\u6027 \uff1a def infer ( model , image _ tensor ) : with torch . no _ grad ( ) : image _ tensor = image _ tensor . cuda ( ) features = model ( image _ tensor ) return features def cosine _ similarity ( tensor1 , tensor2 ) : cos = torch . nn . CosineSimilarity ( dim = 1 , eps = 1e - 6 ) return cos ( tensor1 , tensor2 ) . item ( )","title":"4 . \u7279\u5f81\u63d0\u53d6 \u4e0e \u76f8\u4f3c\u6027 \u8ba1\u7b97"},{"location":"course/recognize/#_5","text":"\u786e\u4fdd \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u5e93 \u3002 \u4e0b\u8f7d \u5e76 \u51c6\u5907 \u597d Market1501 \u6570\u636e \u96c6 \u3002 \u8fd0\u884c \u4e0a\u8ff0 Python \u4ee3\u7801 \uff0c \u786e\u4fdd \u56fe\u50cf \u8def\u5f84 \u6b63\u786e \u3002","title":"\u8fd0\u884c \u6b65\u9aa4"},{"location":"course/recognize/#_6","text":"\u786e\u4fdd \u4f60 \u7684 \u663e\u5361 \u4e0e \u5f53\u524d \u5b89\u88c5 \u7684 PyTorch \u7248\u672c \u517c\u5bb9 \u3002 \u6d4b\u8bd5 \u6570\u636e \u6d4b\u8bd5\u6570\u636e \u96c6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u76ee\u5f55 \u6b63\u786e \uff0c \u5e76\u4e14 \u548c \u811a\u672c \u5728 \u540c \u4e00\u7ea7 \u3002 \u5982\u4e0b \u6240\u793a \uff1a reid - data / \u251c \u2500 \u2500 market1501 / \u251c \u2500 \u2500 bounding _ box _ train / \u251c \u2500 \u2500 bounding _ box _ test / \u251c \u2500 \u2500 query / \u2514 \u2500 \u2500 ...","title":"\u6ce8\u610f\u4e8b\u9879"},{"location":"course/recognize/#_7","text":"\u4ee3\u7801 \u8fd0\u884c \u4ee3\u7801\u8fd0\u884c \u540e \u4f1a \u8f93\u51fa \u4e24\u5f20 \u56fe\u50cf \u7684 \u4f59\u5f26 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u3002 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u503c \u63a5\u8fd1 1 \u8868\u793a \u4e24\u5f20 \u56fe\u50cf \u7279\u5f81 \u76f8\u4f3c \u5ea6\u9ad8 \uff0c \u63a5\u8fd1 0 \u8868\u793a \u7279\u5f81 \u76f8\u4f3c \u5ea6\u4f4e \u3002","title":"\u7ed3\u679c \u5206\u6790"},{"location":"course/regional_macro/","text":"\u533a\u57df \u5b8f\u89c2 \u200b \u6b64 \u793a\u4f8b \u652f\u6301 \u8054\u5408 \u865a\u62df \u5f15\u64ce \u4eff\u771f \u6a21\u62df \u5b9e\u9a8c \u6a21\u62df\u5b9e\u9a8c \uff0c \u5f97\u5230 3D \u5b8f\u89c2 \u533a\u57df \u573a\u666f \u6f14\u793a \u3002 \u73af\u5883 \u4f9d\u8d56 roadrunner carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u914d\u7f6e \u6559\u7a0b \u573a\u666f \u8bbe\u8ba1 \u200b \u9488\u5bf9 \u5927 \u533a\u57df \u7684 \u573a\u666f \u8bbe\u8ba1 \uff0c \u652f\u6301 \u4ece openstreet \u5b98\u7f51 \u5bfc\u51fa \u8def\u7f51 \u6587\u4ef6 \u4f5c\u4e3a \u6a21\u7248 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 roadrunner \u4e2d \u8fdb\u884c \u9053\u8def \u4fee\u6539 \u3002 \u200b \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u200b \u672c \u793a\u4f8b \u4f7f\u7528 \u7684 \u4e3a carla \u63d2\u4ef6 \u4f5c\u4e3a \u6e32\u67d3 \u5f15\u64ce \uff0c \u8fdb\u884c \u5efa\u7b51 \u3001 \u6811 \u3001 \u5c71 \u7b49 \u7684 \u8bbe\u8ba1 \u3002 \u200b \u200b \u5bfc\u51fa \u6267\u884c \u884c\u7a0b \u7a0b\u5e8f \u53ef\u6267\u884c\u7a0b\u5e8f \u8fdb\u884c \u4eff\u771f \u6a21\u62df \u5b9e\u9a8c \u6a21\u62df\u5b9e\u9a8c \u200b \u8fd0\u884c \u4e0b\u8ff0 exe \u7a0b\u5e8f \u4f5c\u4e3a \u670d\u52a1 \u670d\u52a1\u7aef \uff0c \u91c7\u7528 python \u811a\u672c \u4e0e\u5176 \u901a\u4fe1 \u3002 \u5b8f\u89c2 \u5730\u56fe \u200b \u5c06 \u5730\u56fe \u8c03\u6574 \u5230 \u5168\u5c40 \u4fef\u89c6 \u4f4d\u7f6e \u3002","title":"\u533a\u57df \u5b8f\u89c2"},{"location":"course/regional_macro/#_1","text":"\u200b \u6b64 \u793a\u4f8b \u652f\u6301 \u8054\u5408 \u865a\u62df \u5f15\u64ce \u4eff\u771f \u6a21\u62df \u5b9e\u9a8c \u6a21\u62df\u5b9e\u9a8c \uff0c \u5f97\u5230 3D \u5b8f\u89c2 \u533a\u57df \u573a\u666f \u6f14\u793a \u3002","title":"\u533a\u57df \u5b8f\u89c2"},{"location":"course/regional_macro/#_2","text":"roadrunner carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u914d\u7f6e \u6559\u7a0b","title":"\u73af\u5883 \u4f9d\u8d56"},{"location":"course/regional_macro/#_3","text":"\u200b \u9488\u5bf9 \u5927 \u533a\u57df \u7684 \u573a\u666f \u8bbe\u8ba1 \uff0c \u652f\u6301 \u4ece openstreet \u5b98\u7f51 \u5bfc\u51fa \u8def\u7f51 \u6587\u4ef6 \u4f5c\u4e3a \u6a21\u7248 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 roadrunner \u4e2d \u8fdb\u884c \u9053\u8def \u4fee\u6539 \u3002 \u200b","title":"\u573a\u666f \u8bbe\u8ba1"},{"location":"course/regional_macro/#_4","text":"\u200b \u672c \u793a\u4f8b \u4f7f\u7528 \u7684 \u4e3a carla \u63d2\u4ef6 \u4f5c\u4e3a \u6e32\u67d3 \u5f15\u64ce \uff0c \u8fdb\u884c \u5efa\u7b51 \u3001 \u6811 \u3001 \u5c71 \u7b49 \u7684 \u8bbe\u8ba1 \u3002 \u200b \u200b","title":"\u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce"},{"location":"course/regional_macro/#_5","text":"\u200b \u8fd0\u884c \u4e0b\u8ff0 exe \u7a0b\u5e8f \u4f5c\u4e3a \u670d\u52a1 \u670d\u52a1\u7aef \uff0c \u91c7\u7528 python \u811a\u672c \u4e0e\u5176 \u901a\u4fe1 \u3002","title":"\u5bfc\u51fa \u53ef\u6267\u884c\u7a0b\u5e8f \u8fdb\u884c \u4eff\u771f \u6a21\u62df\u5b9e\u9a8c"},{"location":"course/regional_macro/#_6","text":"\u200b \u5c06 \u5730\u56fe \u8c03\u6574 \u5230 \u5168\u5c40 \u4fef\u89c6 \u4f4d\u7f6e \u3002","title":"\u5b8f\u89c2 \u5730\u56fe"},{"location":"course/roadnet_evaluation/","text":"\u8def\u7f51 \u8bc4\u4ef7 \u4ecb\u7ecd \u8be5 \u4ee3\u7801 \u7528\u4e8e \u8bc4\u4f30 Carla \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u8def\u7f51 \u8d28\u91cf \u3002 \u8bc4\u4f30 \u7684 \u6307\u6807 \u5305\u62ec \u8def\u7f51 \u8986\u76d6 \u8986\u76d6\u7387 \u3001 \u8def\u53e3 \u6570\u91cf \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u91cf \u548c \u9053\u8def \u5e73\u5747 \u5bbd\u5ea6 \u3002 \u8bc4\u4f30 \u7ed3\u679c \u53ef\u4ee5 \u5e2e\u52a9 \u4e86\u89e3 \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u9053\u8def \u7f51\u7edc \u7ed3\u6784 \u7f51\u7edc\u7ed3\u6784 \u548c \u914d\u7f6e \u3002 \u73af\u5883 \u914d\u7f6e \u8981 \u8fd0\u884c \u8be5 \u4ee3\u7801 \uff0c \u9700\u8981 \u4ee5\u4e0b \u8f6f\u4ef6 \u548c \u5e93 \uff1a CARLA \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 Python 3 . x carla Python API geopandas \u5e93 shapely \u5e93 scikit - learn \u5e93 \u5b89\u88c5 \u6240 \u9700\u5e93 \u7684 \u547d\u4ee4 \uff1a pip install carla = = 0.9 . 15 pip install geopandas shapely scikit - learn \u529f\u80fd \u7ed3\u6784 \u8be5 \u529f\u80fd \u5305\u542b \u4ee5\u4e0b \u4e3b\u8981 \u90e8\u5206 \uff1a \u8ba1\u7b97 \u8def\u7f51 \u8986\u76d6 \u8986\u76d6\u7387 \u8ba1\u7b97 \u8def\u53e3 \u6570\u91cf \u8ba1\u7b97 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u91cf \u8ba1\u7b97 \u9053\u8def \u5e73\u5747 \u5bbd\u5ea6 \u4eff\u771f \u6d41\u91cf \u548c \u771f\u5b9e \u6d41\u91cf \u76f8\u4f3c \u76f8\u4f3c\u6027 \u8bc4\u4f30 \u8ba1\u7b97 \u8def\u7f51 \u8986\u76d6 \u8986\u76d6\u7387 \u5c06 \u9053\u8def \u51e0\u4f55 \u4fe1\u606f \u8f6c\u6362 \u4e3a GeoPandas \u6570\u636e \u6846 \uff0c \u5e76 \u8ba1\u7b97 \u9053\u8def \u8986\u76d6 \u7684 \u603b\u957f \u957f\u5ea6 \u603b\u957f\u5ea6 \u548c \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u533a\u57df \u7684 \u9762\u79ef \u603b\u9762\u79ef \uff0c \u6700\u540e \u8ba1\u7b97 \u8986\u76d6 \u8986\u76d6\u7387 \u3002 def road _ coverage ( world ) : road _ geometries = get _ road _ geometries ( world ) road _ lines = [ LineString ( road _ geometries ) ] road _ gdf = gpd . GeoDataFrame ( geometry = road _ lines ) area _ of _ interest = Polygon ( [ ( - 500 , - 500 ) , ( - 500 , 500 ) , ( 500 , 500 ) , ( 500 , - 500 ) ] ) area _ gdf = gpd . GeoDataFrame ( geometry = [ area _ of _ interest ] ) total _ road _ length = road _ gdf . length . sum ( ) total _ area = area _ gdf . area . sum ( ) coverage _ ratio = total _ road _ length / total _ area return coverage _ ratio \u8ba1\u7b97 \u8def\u53e3 \u6570\u91cf \u901a\u8fc7 \u904d\u5386 \u6240\u6709 \u8def\u70b9 \uff0c \u627e\u5230 \u4f4d\u4e8e \u8def\u53e3 \u7684 \u8def\u70b9 \u5e76 \u83b7\u53d6 \u552f\u4e00 \u7684 \u8def\u53e3 ID \u3002 def intersection _ num ( world ) : carla _ map = world . get _ map ( ) waypoints = carla _ map . generate _ waypoints ( distance = 2.0 ) junction _ ids = set ( ) for waypoint in waypoints : if waypoint . is _ junction : junction = waypoint . get _ junction ( ) junction _ ids . add ( junction . id ) return len ( junction _ ids ) \u8ba1\u7b97 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u91cf \u5b83 \u901a\u8fc7 \u83b7\u53d6 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u6f14\u5458 \u5bf9\u8c61 \u5e76 \u8ba1\u6570 \u6765 \u5b9e\u73b0 \u3002 def traffic _ num ( world ) : traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) return len ( traffic _ lights ) \u8ba1\u7b97 \u9053\u8def \u5e73\u5747 \u5bbd\u5ea6 \u5b83 \u904d\u5386 \u6240\u6709 \u8def\u70b9 \uff0c \u7d2f\u8ba1 \u8f66\u9053 \u5bbd\u5ea6 \u5e76 \u8ba1\u7b97 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u3002 def road _ width ( world ) : carla _ map = world . get _ map ( ) waypoints = carla _ map . generate _ waypoints ( 2.0 ) total _ width = 0.0 lane _ count = 0 for waypoint in waypoints : total _ width + = waypoint . lane _ width lane _ count + = 1 if lane _ count > 0 : average _ width = total _ width / lane _ count return average _ width else : return 0 \u4eff\u771f \u6d41\u91cf \u548c \u771f\u5b9e \u6d41\u91cf \u76f8\u4f3c \u76f8\u4f3c\u6027 \u8bc4\u4f30 \u7ed9\u5b9a 10 \u6b21 \u771f\u5b9e \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u6570\u636e \uff0c \u4e0e \u4eff\u771f \u83b7\u53d6 \u5f97 10 \u6b21 \u4eff\u771f \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u6570\u636e \u6bd4\u8f83 \u5176 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u3002 \u83b7\u53d6 \u4eff\u771f \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf # \u67d0\u4e2a \u65f6\u523b \u4e8c\u73af \u897f\u4e8c\u73af \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf def get _ vehicles _ in _ intersection ( world , intersection _ location , intersection _ radius ) : vehicles = world . get _ actors ( ) . filter ( ' vehicle . * ' ) vehicles _ in _ intersection = [ ] for vehicle in vehicles : distance = get _ distance ( vehicle . get _ location ( ) , intersection _ location ) if distance < = intersection _ radius : vehicles _ in _ intersection . append ( vehicle ) return len ( vehicles _ in _ intersection ) \u8ba1\u7b97 \u76f8\u4f3c \u76f8\u4f3c\u6027 def anal _ similarity ( real _ flow , sim _ flow ) : simulated _ traffic = np . array ( sim _ flow ) real _ traffic = np . array ( real _ flow ) # \u6570\u636e \u6807\u51c6 \u6807\u51c6\u5316 simulated _ traffic = ( simulated _ traffic - simulated _ traffic . mean ( ) ) / simulated _ traffic . std ( ) real _ traffic = ( real _ traffic - real _ traffic . mean ( ) ) / real _ traffic . std ( ) # \u8ba1\u7b97 \u4f59\u5f26 \u76f8\u4f3c \u76f8\u4f3c\u6027 simulated _ traffic = simulated _ traffic . reshape ( 1 , - 1 ) real _ traffic = real _ traffic . reshape ( 1 , - 1 ) cosine _ sim = cosine _ similarity ( simulated _ traffic , real _ traffic ) return cosine _ sim","title":"\u8def\u7f51 \u8bc4\u4ef7"},{"location":"course/roadnet_evaluation/#_1","text":"","title":"\u8def\u7f51 \u8bc4\u4ef7"},{"location":"course/roadnet_evaluation/#_2","text":"\u8be5 \u4ee3\u7801 \u7528\u4e8e \u8bc4\u4f30 Carla \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u8def\u7f51 \u8d28\u91cf \u3002 \u8bc4\u4f30 \u7684 \u6307\u6807 \u5305\u62ec \u8def\u7f51 \u8986\u76d6 \u8986\u76d6\u7387 \u3001 \u8def\u53e3 \u6570\u91cf \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u91cf \u548c \u9053\u8def \u5e73\u5747 \u5bbd\u5ea6 \u3002 \u8bc4\u4f30 \u7ed3\u679c \u53ef\u4ee5 \u5e2e\u52a9 \u4e86\u89e3 \u4eff\u771f \u73af\u5883 \u4e2d \u7684 \u9053\u8def \u7f51\u7edc \u7ed3\u6784 \u7f51\u7edc\u7ed3\u6784 \u548c \u914d\u7f6e \u3002","title":"\u4ecb\u7ecd"},{"location":"course/roadnet_evaluation/#_3","text":"\u8981 \u8fd0\u884c \u8be5 \u4ee3\u7801 \uff0c \u9700\u8981 \u4ee5\u4e0b \u8f6f\u4ef6 \u548c \u5e93 \uff1a CARLA \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 Python 3 . x carla Python API geopandas \u5e93 shapely \u5e93 scikit - learn \u5e93 \u5b89\u88c5 \u6240 \u9700\u5e93 \u7684 \u547d\u4ee4 \uff1a pip install carla = = 0.9 . 15 pip install geopandas shapely scikit - learn","title":"\u73af\u5883 \u914d\u7f6e"},{"location":"course/roadnet_evaluation/#_4","text":"\u8be5 \u529f\u80fd \u5305\u542b \u4ee5\u4e0b \u4e3b\u8981 \u90e8\u5206 \uff1a \u8ba1\u7b97 \u8def\u7f51 \u8986\u76d6 \u8986\u76d6\u7387 \u8ba1\u7b97 \u8def\u53e3 \u6570\u91cf \u8ba1\u7b97 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u91cf \u8ba1\u7b97 \u9053\u8def \u5e73\u5747 \u5bbd\u5ea6 \u4eff\u771f \u6d41\u91cf \u548c \u771f\u5b9e \u6d41\u91cf \u76f8\u4f3c \u76f8\u4f3c\u6027 \u8bc4\u4f30","title":"\u529f\u80fd \u7ed3\u6784"},{"location":"course/roadnet_evaluation/#_5","text":"\u5c06 \u9053\u8def \u51e0\u4f55 \u4fe1\u606f \u8f6c\u6362 \u4e3a GeoPandas \u6570\u636e \u6846 \uff0c \u5e76 \u8ba1\u7b97 \u9053\u8def \u8986\u76d6 \u7684 \u603b\u957f \u957f\u5ea6 \u603b\u957f\u5ea6 \u548c \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u533a\u57df \u7684 \u9762\u79ef \u603b\u9762\u79ef \uff0c \u6700\u540e \u8ba1\u7b97 \u8986\u76d6 \u8986\u76d6\u7387 \u3002 def road _ coverage ( world ) : road _ geometries = get _ road _ geometries ( world ) road _ lines = [ LineString ( road _ geometries ) ] road _ gdf = gpd . GeoDataFrame ( geometry = road _ lines ) area _ of _ interest = Polygon ( [ ( - 500 , - 500 ) , ( - 500 , 500 ) , ( 500 , 500 ) , ( 500 , - 500 ) ] ) area _ gdf = gpd . GeoDataFrame ( geometry = [ area _ of _ interest ] ) total _ road _ length = road _ gdf . length . sum ( ) total _ area = area _ gdf . area . sum ( ) coverage _ ratio = total _ road _ length / total _ area return coverage _ ratio","title":"\u8ba1\u7b97 \u8def\u7f51 \u8986\u76d6\u7387"},{"location":"course/roadnet_evaluation/#_6","text":"\u901a\u8fc7 \u904d\u5386 \u6240\u6709 \u8def\u70b9 \uff0c \u627e\u5230 \u4f4d\u4e8e \u8def\u53e3 \u7684 \u8def\u70b9 \u5e76 \u83b7\u53d6 \u552f\u4e00 \u7684 \u8def\u53e3 ID \u3002 def intersection _ num ( world ) : carla _ map = world . get _ map ( ) waypoints = carla _ map . generate _ waypoints ( distance = 2.0 ) junction _ ids = set ( ) for waypoint in waypoints : if waypoint . is _ junction : junction = waypoint . get _ junction ( ) junction _ ids . add ( junction . id ) return len ( junction _ ids )","title":"\u8ba1\u7b97 \u8def\u53e3 \u6570\u91cf"},{"location":"course/roadnet_evaluation/#_7","text":"\u5b83 \u901a\u8fc7 \u83b7\u53d6 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u6f14\u5458 \u5bf9\u8c61 \u5e76 \u8ba1\u6570 \u6765 \u5b9e\u73b0 \u3002 def traffic _ num ( world ) : traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) return len ( traffic _ lights )","title":"\u8ba1\u7b97 \u4ea4\u901a\u706f \u6570\u91cf"},{"location":"course/roadnet_evaluation/#_8","text":"\u5b83 \u904d\u5386 \u6240\u6709 \u8def\u70b9 \uff0c \u7d2f\u8ba1 \u8f66\u9053 \u5bbd\u5ea6 \u5e76 \u8ba1\u7b97 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u3002 def road _ width ( world ) : carla _ map = world . get _ map ( ) waypoints = carla _ map . generate _ waypoints ( 2.0 ) total _ width = 0.0 lane _ count = 0 for waypoint in waypoints : total _ width + = waypoint . lane _ width lane _ count + = 1 if lane _ count > 0 : average _ width = total _ width / lane _ count return average _ width else : return 0","title":"\u8ba1\u7b97 \u9053\u8def \u5e73\u5747 \u5bbd\u5ea6"},{"location":"course/roadnet_evaluation/#_9","text":"\u7ed9\u5b9a 10 \u6b21 \u771f\u5b9e \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u6570\u636e \uff0c \u4e0e \u4eff\u771f \u83b7\u53d6 \u5f97 10 \u6b21 \u4eff\u771f \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u6570\u636e \u6bd4\u8f83 \u5176 \u76f8\u4f3c \u76f8\u4f3c\u6027 \u3002","title":"\u4eff\u771f \u6d41\u91cf \u548c \u771f\u5b9e \u6d41\u91cf \u76f8\u4f3c\u6027 \u8bc4\u4f30"},{"location":"course/roadnet_evaluation/#_10","text":"# \u67d0\u4e2a \u65f6\u523b \u4e8c\u73af \u897f\u4e8c\u73af \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf def get _ vehicles _ in _ intersection ( world , intersection _ location , intersection _ radius ) : vehicles = world . get _ actors ( ) . filter ( ' vehicle . * ' ) vehicles _ in _ intersection = [ ] for vehicle in vehicles : distance = get _ distance ( vehicle . get _ location ( ) , intersection _ location ) if distance < = intersection _ radius : vehicles _ in _ intersection . append ( vehicle ) return len ( vehicles _ in _ intersection )","title":"\u83b7\u53d6 \u4eff\u771f \u8f66\u6d41\u91cf"},{"location":"course/roadnet_evaluation/#_11","text":"def anal _ similarity ( real _ flow , sim _ flow ) : simulated _ traffic = np . array ( sim _ flow ) real _ traffic = np . array ( real _ flow ) # \u6570\u636e \u6807\u51c6 \u6807\u51c6\u5316 simulated _ traffic = ( simulated _ traffic - simulated _ traffic . mean ( ) ) / simulated _ traffic . std ( ) real _ traffic = ( real _ traffic - real _ traffic . mean ( ) ) / real _ traffic . std ( ) # \u8ba1\u7b97 \u4f59\u5f26 \u76f8\u4f3c \u76f8\u4f3c\u6027 simulated _ traffic = simulated _ traffic . reshape ( 1 , - 1 ) real _ traffic = real _ traffic . reshape ( 1 , - 1 ) cosine _ sim = cosine _ similarity ( simulated _ traffic , real _ traffic ) return cosine _ sim","title":"\u8ba1\u7b97 \u76f8\u4f3c\u6027"},{"location":"course/scenario/","text":"RoadRunner \u8fdb\u884c \u9053\u8def \u573a\u666f \u5efa\u6a21 \u200b RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8bbe\u8ba1 \u7528\u4e8e \u6a21\u62df \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \uff0c \u4ee5\u53ca \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 RoadRunner \u7b80\u4ecb \u200b 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 \u200b 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 \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 \u200b \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 \u200b RoadRunner R2022b \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u5982\u4e0b \u56fe \u6240\u793a \uff0c \u89e3\u538b \u540e \u76f4\u63a5 \u8fd0\u884c \u91cc\u9762 \u7684 exe \u7a0b\u5e8f \u3002 RoadRunner \u57fa\u672c \u4f7f\u7528 RoadRunner \u754c\u9762 \u5206\u4e3a Scene Editing \u548c Scenario Editing \uff0c \u4e0b\u56fe \u6240\u793a \u4e3a roadrunner \u8f6f\u4ef6 \u7684 Scene Editing ( \u9759\u6001 \u8def\u7f51 \u7f16\u8f91 ) \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u754c\u9762 \uff1a \u7ea2\u8272 \u662f \u5efa\u7acb \u9053\u8def \u548c \u8c03\u6574 \u9053\u8def ( \u5206\u6bb5 \uff0c \u7ffb\u8f6c \uff0c \u5761\u5ea6 \u7b49 \uff09 \u9ec4\u8272 \u53f3\u4e0a \u662f \u8f66\u9053 \u5c5e\u6027 \u8c03\u6574 ( \u5bbd\u5ea6 \uff0c \u8f66\u9053 \u5206\u79bb / \u589e\u52a0 \u7b49 ) \u9ec4\u8272 \u5de6\u4e0b \u662f \u8f66\u9053 \u6807\u5fd7 \u7f16\u8f91 \u7d2b\u8272 \u662f \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u53c9 \u8def\u6bb5 \u7684 \u8bbe\u7f6e \u7c89\u8272 \u662f \u5404\u79cd \u573a\u666f \u5bfc\u5165 \u548c \u5efa\u7acb \u5de5\u5177 RoadRunner \u57fa\u672c \u4f7f\u7528 \u6559\u7a0b \u94fe\u63a5 \uff1a \u5feb\u901f \u5165\u95e8 MathWorks \u5b8c\u6574 \u6559\u7a0b \u4f7f\u7528 \u516c\u5f00 \u9053\u8def \u5730\u56fe \u751f\u6210 \u9053\u8def \u7f51\u7edc \u200b OpenStreetMap \u662f \u4e00\u4e2a \u5f00\u653e \u3001 \u53ef \u7f16\u8f91 \u7684 \u5730\u56fe \u9879\u76ee \uff0c \u7531 \u5168\u7403 \u5fd7\u613f \u613f\u8005 \u5fd7\u613f\u8005 \u8d21\u732e \u6570\u636e \uff0c \u5176 \u6570\u636e \u5305\u62ec \u9053\u8def \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u5730\u7406 \u7279\u5f81 \u3001 \u4ea4\u901a \u8bbe\u65bd \u4ea4\u901a\u8bbe\u65bd \u7b49 \u5730\u7406 \u4fe1\u606f \u5730\u7406\u4fe1\u606f \u3002 \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u53ef\u4ee5 \u641c\u7d22 \u76f8\u5e94 \u7684 \u9053\u8def \u4fe1\u606f \uff0c \u9009\u62e9 \u5bfc\u51fa osm \u8def\u7f51 \u6587\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u8fdb\u884c \u5bf9 \u8be5 \u7f51\u7ad9 \u7684 \u7f16\u8f91 \u4fee\u6539 \uff1a OpenStreetMap \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u5c06 osm \u8def\u7f51 \u6587\u4ef6 \u5bfc\u5165 RoadRunner \u5728 Scene Editing \u7684 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 SD Map Viewer Tool \u5de5\u5177 \uff0c \u70b9\u51fb Open OpenStreetMap File \u9009\u62e9 osm \u8def\u7f51 \u6587\u4ef6 \u4f4d\u7f6e \uff0c \u6700\u540e \u70b9\u51fb Build Road \u5b8c\u6210 \u8def\u7f51 \u7684 \u751f\u6210 \u3002 \u5728 RoadRunner \u8fdb\u884c \u8f66\u8f86 \u6a21\u62df \u4eff\u771f \u200b Scenario Editing \u4e3a \u52a8\u6001 \u8def\u7f51 \u7f16\u8f91 \uff0c \u53ef\u4ee5 \u6dfb\u52a0 / \u5220\u9664 \u8f66\u8f86 \uff0c \u8fdb\u884c \u8f66\u8f86 \u901f\u5ea6 \u8bbe\u7f6e \u3001 \u8f68\u8ff9 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u89c4\u5212 \u7b49 \uff0c \u5e76 \u652f\u6301 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5185 \u64ad\u653e \uff0c \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u5e76 \u8fde\u63a5 \u5230 \u5176\u4ed6 \u573a\u666f \u7528\u4e8e \u534f\u540c \u4eff\u771f \u7684 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u53f3\u4e0a \u4e0a\u89d2 \u53f3\u4e0a\u89d2 \u7684 \u4e0b\u62c9 \u4e0b\u62c9\u680f \u53ef \u8fdb\u884c \u52a8 / \u9759 \u7f16\u8f91 \u5207\u6362 \u3002 \u57fa\u4e8e Carla \u4e0e RoadRunner \u7684 \u8054\u5408 \u4eff\u771f \u53c2\u8003 \u94fe\u63a5 \uff1a \u8054\u5408 \u4eff\u771f RoadRunner \u5bfc\u51fa \u5927 \u5730\u56fe \u6559\u7a0b","title":"RoadRunner \u8fdb\u884c \u9053\u8def \u573a\u666f \u5efa\u6a21"},{"location":"course/scenario/#roadrunner","text":"\u200b RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8bbe\u8ba1 \u7528\u4e8e \u6a21\u62df \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \uff0c \u4ee5\u53ca \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002","title":"RoadRunner \u8fdb\u884c \u9053\u8def \u573a\u666f \u5efa\u6a21"},{"location":"course/scenario/#roadrunner_1","text":"\u200b 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 \u200b 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 \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 \u200b \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 \u200b RoadRunner R2022b \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u5982\u4e0b \u56fe \u6240\u793a \uff0c \u89e3\u538b \u540e \u76f4\u63a5 \u8fd0\u884c \u91cc\u9762 \u7684 exe \u7a0b\u5e8f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"course/scenario/#roadrunner_2","text":"RoadRunner \u754c\u9762 \u5206\u4e3a Scene Editing \u548c Scenario Editing \uff0c \u4e0b\u56fe \u6240\u793a \u4e3a roadrunner \u8f6f\u4ef6 \u7684 Scene Editing ( \u9759\u6001 \u8def\u7f51 \u7f16\u8f91 ) \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u754c\u9762 \uff1a \u7ea2\u8272 \u662f \u5efa\u7acb \u9053\u8def \u548c \u8c03\u6574 \u9053\u8def ( \u5206\u6bb5 \uff0c \u7ffb\u8f6c \uff0c \u5761\u5ea6 \u7b49 \uff09 \u9ec4\u8272 \u53f3\u4e0a \u662f \u8f66\u9053 \u5c5e\u6027 \u8c03\u6574 ( \u5bbd\u5ea6 \uff0c \u8f66\u9053 \u5206\u79bb / \u589e\u52a0 \u7b49 ) \u9ec4\u8272 \u5de6\u4e0b \u662f \u8f66\u9053 \u6807\u5fd7 \u7f16\u8f91 \u7d2b\u8272 \u662f \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u53c9 \u8def\u6bb5 \u7684 \u8bbe\u7f6e \u7c89\u8272 \u662f \u5404\u79cd \u573a\u666f \u5bfc\u5165 \u548c \u5efa\u7acb \u5de5\u5177 RoadRunner \u57fa\u672c \u4f7f\u7528 \u6559\u7a0b \u94fe\u63a5 \uff1a \u5feb\u901f \u5165\u95e8 MathWorks \u5b8c\u6574 \u6559\u7a0b","title":"RoadRunner \u57fa\u672c \u4f7f\u7528"},{"location":"course/scenario/#_1","text":"\u200b OpenStreetMap \u662f \u4e00\u4e2a \u5f00\u653e \u3001 \u53ef \u7f16\u8f91 \u7684 \u5730\u56fe \u9879\u76ee \uff0c \u7531 \u5168\u7403 \u5fd7\u613f \u613f\u8005 \u5fd7\u613f\u8005 \u8d21\u732e \u6570\u636e \uff0c \u5176 \u6570\u636e \u5305\u62ec \u9053\u8def \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u5730\u7406 \u7279\u5f81 \u3001 \u4ea4\u901a \u8bbe\u65bd \u4ea4\u901a\u8bbe\u65bd \u7b49 \u5730\u7406 \u4fe1\u606f \u5730\u7406\u4fe1\u606f \u3002 \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u53ef\u4ee5 \u641c\u7d22 \u76f8\u5e94 \u7684 \u9053\u8def \u4fe1\u606f \uff0c \u9009\u62e9 \u5bfc\u51fa osm \u8def\u7f51 \u6587\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u8fdb\u884c \u5bf9 \u8be5 \u7f51\u7ad9 \u7684 \u7f16\u8f91 \u4fee\u6539 \uff1a OpenStreetMap \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91","title":"\u4f7f\u7528 \u516c\u5f00 \u9053\u8def \u5730\u56fe \u751f\u6210 \u9053\u8def \u7f51\u7edc"},{"location":"course/scenario/#osmroadrunner","text":"\u5728 Scene Editing \u7684 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 SD Map Viewer Tool \u5de5\u5177 \uff0c \u70b9\u51fb Open OpenStreetMap File \u9009\u62e9 osm \u8def\u7f51 \u6587\u4ef6 \u4f4d\u7f6e \uff0c \u6700\u540e \u70b9\u51fb Build Road \u5b8c\u6210 \u8def\u7f51 \u7684 \u751f\u6210 \u3002","title":"\u5c06 osm \u8def\u7f51 \u6587\u4ef6 \u5bfc\u5165 RoadRunner"},{"location":"course/scenario/#roadrunner_3","text":"\u200b Scenario Editing \u4e3a \u52a8\u6001 \u8def\u7f51 \u7f16\u8f91 \uff0c \u53ef\u4ee5 \u6dfb\u52a0 / \u5220\u9664 \u8f66\u8f86 \uff0c \u8fdb\u884c \u8f66\u8f86 \u901f\u5ea6 \u8bbe\u7f6e \u3001 \u8f68\u8ff9 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u89c4\u5212 \u7b49 \uff0c \u5e76 \u652f\u6301 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5185 \u64ad\u653e \uff0c \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u5e76 \u8fde\u63a5 \u5230 \u5176\u4ed6 \u573a\u666f \u7528\u4e8e \u534f\u540c \u4eff\u771f \u7684 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u53f3\u4e0a \u4e0a\u89d2 \u53f3\u4e0a\u89d2 \u7684 \u4e0b\u62c9 \u4e0b\u62c9\u680f \u53ef \u8fdb\u884c \u52a8 / \u9759 \u7f16\u8f91 \u5207\u6362 \u3002","title":"\u5728 RoadRunner \u8fdb\u884c \u8f66\u8f86 \u6a21\u62df \u4eff\u771f"},{"location":"course/scenario/#carlaroadrunner","text":"\u53c2\u8003 \u94fe\u63a5 \uff1a \u8054\u5408 \u4eff\u771f RoadRunner \u5bfc\u51fa \u5927 \u5730\u56fe \u6559\u7a0b","title":"\u57fa\u4e8e Carla \u4e0e RoadRunner \u7684 \u8054\u5408 \u4eff\u771f"},{"location":"course/signal_control/","text":"\u624b\u52a8 \u4fe1\u53f7 \u63a7\u5236 \u8fd9\u662f \u4e00\u4e2a \u7528\u4e8e \u63a7\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 Flask \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u901a\u8fc7 Carla \u4eff\u771f \u73af\u5883 \u5b9e\u73b0 \u3002 \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 OpenDRIVE ID \u3001 \u989c\u8272 ID \u4ee5\u53ca \u8bbe\u7f6e \u65f6\u957f \u6765 \u63a7\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u72b6\u6001 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u989c\u8272 \u8bbe\u7f6e \u5305\u62ec \u7eff\u706f \u3001 \u9ec4\u706f \u548c \u7ea2\u706f \uff0c \u5206\u522b \u5bf9\u5e94 \u989c\u8272 ID [ 1 , 2 , 3 ] \u3002 \u989c\u8272 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u53c2\u6570 \u8bf4\u660e \u811a\u672c \u63a5\u6536 \u4ee5\u4e0b \u53c2\u6570 \uff1a 1 . -- traffic _ id ( - I ) : \u76ee\u6807 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 OpenDrive ID \u3002 2 . -- color _ id ( - C ) : \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u989c\u8272 ID \uff0c \u5bf9\u5e94 \u7eff\u706f \u3001 \u9ec4\u706f \u548c \u7ea2\u706f \uff0c \u5206\u522b \u4e3a 1 \u3001 2 \u548c 3 \u3002 3 . -- color _ time ( - T ) : \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u989c\u8272 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5355\u4f4d \u4e3a \u79d2 \u3002 \u53c2\u6570 \u683c\u5f0f \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u989c\u8272 \u8bbe\u7f6e \u53c2\u6570 \u7684 \u683c\u5f0f \u4e3a \u3010 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f OpenDrive ID \uff0c \u989c\u8272 ID \uff0c \u8bbe\u7f6e \u65f6 \u957f \u3011 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u989c\u8272 ID \u8bf4\u660e \uff1a \u7eff\u706f \uff1a 1 \u9ec4\u706f \uff1a 2 \u7ea2\u706f \uff1a 3 \u4f7f\u7528 \u6b65\u9aa4 \u8981 \u8bbe\u7f6e \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u53ef\u4ee5 \u53d1\u9001 \u4e00\u4e2a GET \u8bf7\u6c42 \u5230 / set _ traffic _ light \uff1a \u6253\u5f00 Carla \u4eff\u771f \u73af\u5883 \u8fd0\u884c \u811a\u672c signal _ control . py \u6765 \u5f00\u542f \u670d\u52a1 \u670d\u52a1\u7aef \u53d1\u9001 http \u8bf7\u6c42 : http : / / 127.0 . 0.1 : 5000 / set _ traffic _ light ? traffic _ id = - 5 & color _ id = 3 & color _ time = 30 \u4ee5\u4e0a \u8bf7\u6c42 \u8868\u793a \u8bbe\u7f6e OpenDrive ID \u4e3a - 5 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u4e3a 30 \u79d2 \u3002 \u811a\u672c \u5de5\u4f5c \u6d41\u7a0b \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u4e3b\u8981 \u529f\u80fd \u662f \u6839\u636e \u7528\u6237 \u63d0\u4f9b \u7684 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u6307\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u989c\u8272 \u548c \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 \u5177\u4f53 \u5b9e\u73b0 \u6b65\u9aa4 \u5982\u4e0b \uff1a 1 . \u63a5\u6536 \u7528\u6237 \u8bf7\u6c42 \uff0c \u5e76 \u89e3\u6790 \u4f20\u5165 \u7684 \u53c2\u6570 \u3002 2 . \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u83b7\u53d6 \u5f53\u524d \u4e16\u754c \u5bf9\u8c61 \u3002 client = carla . Client ( ' localhost ' , 2000 ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 3 . \u67e5\u627e \u6307\u5b9a \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5bf9\u8c61 , \u8f93\u51fa \u4fee\u6539 \u524d \u7684 \u706f\u5149 \u65f6\u95f4 \u3002 for traffic _ light in traffic _ lights : if float ( traffic _ light . get _ opendrive _ id ( ) ) = = traffic _ id : if color _ id = = 1 : init _ time = traffic _ light . get _ green _ time ( ) elif color _ id = = 2 : init _ time = traffic _ light . get _ yellow _ time ( ) elif color _ id = = 3 : init _ time = traffic _ light . get _ red _ time ( ) 4 . \u8df3\u8f6c \u89c6\u89d2 \u5230 \u8be5 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5408\u9002 \u7684 \u4f4d\u7f6e \u3002 lights _ setting = [ [ - 6 , carla . Transform ( carla . Location ( x = - 220 , y = - 9 , z = 5 ) , carla . Rotation ( yaw = 180 ) ) ] , [ - 5 , carla . Transform ( carla . Location ( x = - 260 , y = 35 , z = 5 ) , carla . Rotation ( yaw = - 90 ) ) ] ] spectator = world . get _ spectator ( ) for setting in lights _ setting : if setting [ 0 ] = = traffic _ id : spectator . set _ transform ( setting [ 1 ] ) break 5 . \u6839\u636e \u989c\u8272 ID \u8bbe\u7f6e \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 for traffic _ light in traffic _ lights : if float ( traffic _ light . get _ opendrive _ id ( ) ) = = traffic _ id : if color _ id = = 1 : traffic _ light . set _ green _ time ( float ( color _ time ) ) color _ name = \" \u7eff\u8272 \" elif color _ id = = 2 : traffic _ light . set _ yellow _ time ( float ( color _ time ) ) color _ name = \" \u9ec4\u8272 \" elif color _ id = = 3 : traffic _ light . set _ red _ time ( float ( color _ time ) ) color _ name = \" \u7ea2\u8272 \" 6 . \u8fd4\u56de \u8bbe\u7f6e \u7ed3\u679c \u7684 JSON \u54cd\u5e94 \u3002 response _ data = { \" id \" : traffic _ id , \" color \" : color _ name , \" init _ time \" : init _ time , \" last _ time \" : color _ time } \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \u5728 \u6267\u884c \u811a\u672c \u524d \uff0c \u8bf7 \u786e\u4fdd CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u3002 \u53d1\u9001 \u8bf7\u6c42 \u65f6 \uff0c \u9700\u8981 \u4f20\u5165 \u5bf9\u5e94 \u7684 \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \u3002 settings . no _ rendering _ mode = False \u4e0d\u80fd \u91cd\u590d \u8bbe\u7f6e \uff0c \u5426\u5219 \u5373\u4f7f \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u957f \u4e5f \u4e0d\u4f1a \u6709 \u6548\u679c \u3002 \u8fd0\u884c \u7ed3\u679c","title":"\u624b\u52a8 \u4fe1\u53f7 \u63a7\u5236"},{"location":"course/signal_control/#_1","text":"\u8fd9\u662f \u4e00\u4e2a \u7528\u4e8e \u63a7\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 Flask \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u901a\u8fc7 Carla \u4eff\u771f \u73af\u5883 \u5b9e\u73b0 \u3002 \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 OpenDRIVE ID \u3001 \u989c\u8272 ID \u4ee5\u53ca \u8bbe\u7f6e \u65f6\u957f \u6765 \u63a7\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u72b6\u6001 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u989c\u8272 \u8bbe\u7f6e \u5305\u62ec \u7eff\u706f \u3001 \u9ec4\u706f \u548c \u7ea2\u706f \uff0c \u5206\u522b \u5bf9\u5e94 \u989c\u8272 ID [ 1 , 2 , 3 ] \u3002 \u989c\u8272 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002","title":"\u624b\u52a8 \u4fe1\u53f7 \u63a7\u5236"},{"location":"course/signal_control/#_2","text":"\u811a\u672c \u63a5\u6536 \u4ee5\u4e0b \u53c2\u6570 \uff1a 1 . -- traffic _ id ( - I ) : \u76ee\u6807 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 OpenDrive ID \u3002 2 . -- color _ id ( - C ) : \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u989c\u8272 ID \uff0c \u5bf9\u5e94 \u7eff\u706f \u3001 \u9ec4\u706f \u548c \u7ea2\u706f \uff0c \u5206\u522b \u4e3a 1 \u3001 2 \u548c 3 \u3002 3 . -- color _ time ( - T ) : \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u989c\u8272 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5355\u4f4d \u4e3a \u79d2 \u3002","title":"\u53c2\u6570 \u8bf4\u660e"},{"location":"course/signal_control/#_3","text":"\u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u989c\u8272 \u8bbe\u7f6e \u53c2\u6570 \u7684 \u683c\u5f0f \u4e3a \u3010 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f OpenDrive ID \uff0c \u989c\u8272 ID \uff0c \u8bbe\u7f6e \u65f6 \u957f \u3011 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u989c\u8272 ID \u8bf4\u660e \uff1a \u7eff\u706f \uff1a 1 \u9ec4\u706f \uff1a 2 \u7ea2\u706f \uff1a 3","title":"\u53c2\u6570 \u683c\u5f0f"},{"location":"course/signal_control/#_4","text":"\u8981 \u8bbe\u7f6e \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u53ef\u4ee5 \u53d1\u9001 \u4e00\u4e2a GET \u8bf7\u6c42 \u5230 / set _ traffic _ light \uff1a \u6253\u5f00 Carla \u4eff\u771f \u73af\u5883 \u8fd0\u884c \u811a\u672c signal _ control . py \u6765 \u5f00\u542f \u670d\u52a1 \u670d\u52a1\u7aef \u53d1\u9001 http \u8bf7\u6c42 : http : / / 127.0 . 0.1 : 5000 / set _ traffic _ light ? traffic _ id = - 5 & color _ id = 3 & color _ time = 30 \u4ee5\u4e0a \u8bf7\u6c42 \u8868\u793a \u8bbe\u7f6e OpenDrive ID \u4e3a - 5 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u4e3a 30 \u79d2 \u3002","title":"\u4f7f\u7528 \u6b65\u9aa4"},{"location":"course/signal_control/#_5","text":"\u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u4e3b\u8981 \u529f\u80fd \u662f \u6839\u636e \u7528\u6237 \u63d0\u4f9b \u7684 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u6307\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u989c\u8272 \u548c \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 \u5177\u4f53 \u5b9e\u73b0 \u6b65\u9aa4 \u5982\u4e0b \uff1a 1 . \u63a5\u6536 \u7528\u6237 \u8bf7\u6c42 \uff0c \u5e76 \u89e3\u6790 \u4f20\u5165 \u7684 \u53c2\u6570 \u3002 2 . \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u83b7\u53d6 \u5f53\u524d \u4e16\u754c \u5bf9\u8c61 \u3002 client = carla . Client ( ' localhost ' , 2000 ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 3 . \u67e5\u627e \u6307\u5b9a \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5bf9\u8c61 , \u8f93\u51fa \u4fee\u6539 \u524d \u7684 \u706f\u5149 \u65f6\u95f4 \u3002 for traffic _ light in traffic _ lights : if float ( traffic _ light . get _ opendrive _ id ( ) ) = = traffic _ id : if color _ id = = 1 : init _ time = traffic _ light . get _ green _ time ( ) elif color _ id = = 2 : init _ time = traffic _ light . get _ yellow _ time ( ) elif color _ id = = 3 : init _ time = traffic _ light . get _ red _ time ( ) 4 . \u8df3\u8f6c \u89c6\u89d2 \u5230 \u8be5 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5408\u9002 \u7684 \u4f4d\u7f6e \u3002 lights _ setting = [ [ - 6 , carla . Transform ( carla . Location ( x = - 220 , y = - 9 , z = 5 ) , carla . Rotation ( yaw = 180 ) ) ] , [ - 5 , carla . Transform ( carla . Location ( x = - 260 , y = 35 , z = 5 ) , carla . Rotation ( yaw = - 90 ) ) ] ] spectator = world . get _ spectator ( ) for setting in lights _ setting : if setting [ 0 ] = = traffic _ id : spectator . set _ transform ( setting [ 1 ] ) break 5 . \u6839\u636e \u989c\u8272 ID \u8bbe\u7f6e \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 for traffic _ light in traffic _ lights : if float ( traffic _ light . get _ opendrive _ id ( ) ) = = traffic _ id : if color _ id = = 1 : traffic _ light . set _ green _ time ( float ( color _ time ) ) color _ name = \" \u7eff\u8272 \" elif color _ id = = 2 : traffic _ light . set _ yellow _ time ( float ( color _ time ) ) color _ name = \" \u9ec4\u8272 \" elif color _ id = = 3 : traffic _ light . set _ red _ time ( float ( color _ time ) ) color _ name = \" \u7ea2\u8272 \" 6 . \u8fd4\u56de \u8bbe\u7f6e \u7ed3\u679c \u7684 JSON \u54cd\u5e94 \u3002 response _ data = { \" id \" : traffic _ id , \" color \" : color _ name , \" init _ time \" : init _ time , \" last _ time \" : color _ time }","title":"\u811a\u672c \u5de5\u4f5c \u6d41\u7a0b"},{"location":"course/signal_control/#_6","text":"\u5728 \u6267\u884c \u811a\u672c \u524d \uff0c \u8bf7 \u786e\u4fdd CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u3002 \u53d1\u9001 \u8bf7\u6c42 \u65f6 \uff0c \u9700\u8981 \u4f20\u5165 \u5bf9\u5e94 \u7684 \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \u3002 settings . no _ rendering _ mode = False \u4e0d\u80fd \u91cd\u590d \u8bbe\u7f6e \uff0c \u5426\u5219 \u5373\u4f7f \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u957f \u4e5f \u4e0d\u4f1a \u6709 \u6548\u679c \u3002","title":"\u6ce8\u610f\u4e8b\u9879"},{"location":"course/signal_control/#_7","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"course/traffic_indicators/","text":"\u8def\u53e3 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u8ba1\u7b97 ( HutbCarlaCity ) \u200b \u4e3a \u652f\u6301 \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \u4fdd\u6b63 \u9ad8\u4fdd\u6b63 \u7684 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u4e09\u7ef4 \u5efa\u6a21 \uff0c \u8bbe\u8ba1 traffic _ indicators . py \u811a\u672c \u5bf9 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef \u3001 \u8def\u53e3 \u9971\u548c \u3001 \u6392\u961f \u957f\u5ea6 \u56db\u79cd \u8def\u53e3 \u771f\u5b9e \u771f\u5b9e\u6027 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u3002 \u9996\u5148 \u9700\u8981 \u5bf9 \u573a\u666f \u4e2d \u6dfb\u52a0 \u8f66\u8f86 \uff0c \u8fd0\u884c generate _ traffic . py \u811a\u672c \uff0c \u751f\u6210 \u8db3\u591f \u7684 \u8f66\u8f86 \u3002 \u5b9a\u4e49 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5e76 \u83b7\u53d6 \u4eff\u771f \u4e16\u754c \u5bf9\u8c61 argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , # \u9ed8\u8ba4 ip help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , # \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) 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 \u5c06 \u8def\u53e3 \u5b9a\u4e49 \u4e3a \u4e00\u4e2a \u77e9\u5f62 \u533a\u57df \uff0c \u5728 Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5f97\u5230 \u76f8\u5e94 \u5750\u6807 # \u8def\u53e3 \u5750\u6807 , junctions = [ [ - 194 , - 372 , 79 , - 34 ] , # \u6850\u6893 \u5761\u8def - \u4e8c\u73af \u897f\u4e8c\u73af \u8def\u53e3 [ 449 , 381 , 48 , - 87 ] # \u6850\u6893 \u5761\u8def - \u671b\u5cb3 \u8def\u53e3 ] # \u7528\u4e8e \u8ddf\u8e2a \u5df2\u7ecf \u8ba1\u7b97 \u7684 \u8f66\u8f86 id \u4ee5\u53ca \u8fdb\u5165 \u7684 \u65f6\u95f4 counted _ vehicles = [ { } , { } ] \u8ba1\u7b97 \u5bf9\u5e94 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8f66\u5747 \u5ef6\u8bef \u3001 \u9971\u548c \u9971\u548c\u5ea6 \u3001 \u6392\u961f \u957f\u5ea6 \u5b9a\u4e49 \u4fe9\u4e2a \u5168\u5c40 \u53d8\u91cf \u5168\u5c40\u53d8\u91cf SATURATION = 32 # \u8def\u53e3 \u6700\u5927 \u5bb9\u91cf DWELL _ TIME = 50 # 50 \u79d2 \u540e \u8ba4\u4e3a \u8f66\u8f86 \u5df2 \u79bb\u5f00 \u8def\u53e3 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u51fd\u6570 get _ traffic _ flow ( ) def get _ traffic _ flow ( world , junction , traffic _ flows , i , counted _ vehicles ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # counted _ vehicles = { } \u662f \u4e00\u4e2a \u5b57\u5178 current _ time = world . get _ snapshot ( ) . timestamp . elapsed _ seconds # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : vehicle _ id = vehicle . id # \u8868\u793a \u8f66\u8f86 \u8fd8 \u6ca1 \u7ecf\u8fc7 \u8def\u53e3 if vehicle _ id not in counted _ vehicles : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y # \u8f66\u8f86 \u7ecf\u8fc7 \u8def\u53e3 if x < = junction [ 0 ] and x > = junction [ 1 ] and y < = junction [ 2 ] and y > = junction [ 3 ] : # \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u52a0 1 traffic _ flows [ i ] = traffic _ flows [ i ] + 1 counted _ vehicles [ vehicle _ id ] = current _ time # \u79fb\u9664 \u79bb\u5f00 \u8def\u53e3 \u65f6\u95f4 \u8d85\u8fc7 dwell _ time \u7684 \u8f66\u8f86 vehicles _ to _ remove = [ vid for vid , enter _ time in counted _ vehicles . items ( ) if current _ time - enter _ time > DWELL _ TIME ] for vehicle _ id in vehicles _ to _ remove : del counted _ vehicles [ vehicle _ id ] \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 \u51fd\u6570 saturation ( ) \u91c7\u7528 \u8def\u53e3 \u5b9e\u9645 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf / \u8def\u53e3 \u9053\u8def \u6700\u5927 \u6240 \u627f\u8f7d \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u7b97 \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 # \u8ba1\u7b97 \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 def saturation ( world , junctions , counted _ vehicles ) : saturation _ degrees = [ 0 , 0 ] ave _ saturation = [ 0 , 0 ] # \u6d41\u91cf traffic _ flows = [ 0 , 0 ] # \u7528\u4e8e \u8ddf\u8e2a \u5df2\u7ecf \u8ba1\u7b97 \u7684 \u8f66\u8f86 id \u4ee5\u53ca \u8fdb\u5165 \u7684 \u65f6\u95f4 queue _ length = [ 0 , 0 ] time _ tamp = 0 while True : time _ tamp + = 1 # i \u8868\u793a \u7b2c i \u4e2a \u8def\u53e3 for i in range ( len ( junctions ) ) : get _ traffic _ flow ( world , junctions [ i ] , traffic _ flows , i , counted _ vehicles [ i ] ) saturation _ degrees [ i ] = traffic _ flows [ i ] / SATURATION + saturation _ degrees [ i ] if time _ tamp = = 10000 : for i in range ( len ( junctions ) ) : ave _ saturation [ i ] = saturation _ degrees [ i ] / 10000 queue _ length [ i ] = ( traffic _ flows [ i ] * 3 ) / 4 break return ave _ saturation \u6392\u961f \u957f\u5ea6 \u51fd\u6570 queue _ lengths ( ) \u91c7\u7528 \u8def\u53e3 \u5b9e\u9645 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf * \u5e73\u5747 \u8f66\u8f86 \u957f\u5ea6 \u8ba1\u7b97 \u6392\u961f \u957f\u5ea6 # \u8ba1\u7b97 \u6392\u961f \u957f\u5ea6 def queue _ lengths ( world , junctions , counted _ vehicles ) : # \u6d41\u91cf traffic _ flows = [ 0 , 0 ] # \u7528\u4e8e \u8ddf\u8e2a \u5df2\u7ecf \u8ba1\u7b97 \u7684 \u8f66\u8f86 id \u4ee5\u53ca \u8fdb\u5165 \u7684 \u65f6\u95f4 queue _ length = [ 0 , 0 ] time _ tamp = 0 while True : time _ tamp + = 1 # i \u8868\u793a \u7b2c i \u4e2a \u8def\u53e3 for i in range ( len ( junctions ) ) : get _ traffic _ flow ( world , junctions [ i ] , traffic _ flows , i , counted _ vehicles [ i ] ) # print ( saturation _ degrees ) # 1000 \u4e2a \u65f6\u95f4 \u6b65 \u62df\u4f5c 1 \u5929 # print ( time _ tamp ) if time _ tamp = = 10000 : for i in range ( len ( junctions ) ) : queue _ length [ i ] = ( traffic _ flows [ i ] * 3 ) / 4 break return queue _ length \u8f66\u5747 \u5ef6\u8bef \u51fd\u6570 ave _ delay ( ) \u91c7\u7528 \u4ee5\u4e0b \u8ba1\u7b97 \u516c\u5f0f \u8ba1\u7b97\u516c\u5f0f \u8fdb\u884c \u8ba1\u7b97 \uff1a \u200b \u5176\u4e2d D \u4e3a \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef \u53c2\u6570 \uff0c C \u4e3a \u8def\u53e3 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u914d\u65f6 \u603b \u65f6\u95f4 \uff0c y \u4e3a \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 \uff0c T \u4e3a \u5f53\u524d \u5206\u6790 \u65f6\u6bb5 \u7684 \u65f6\u957f \u3002 # \u5f97\u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f def get _ traffic _ light ( world , light _ id ) : traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) total _ time = 0 green _ time = 0 for traffic _ light in traffic _ lights : if traffic _ light . id = = light _ id : red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) total _ time = red _ time + green _ time + yellow _ time return total _ time , green _ time # \u8ba1\u7b97 \u5e73\u5747 \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef def ave _ delay ( world , light _ id , ave _ saturation , junctions ) : vehicle _ ave _ delays = [ ] total _ time , green _ time = get _ traffic _ light ( world , light _ id ) for i in range ( len ( junctions ) ) : vehicle _ ave _ delay = 0.5 * total _ time * ( 1 - green _ time / total _ time ) * * 2 / ( 1 - ave _ saturation [ i ] ) + min ( 1 , ave _ saturation [ i ] ) * 2 vehicle _ ave _ delays . append ( vehicle _ ave _ delay ) return vehicle _ ave _ delays","title":"\u8def\u53e3 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u8ba1\u7b97 ( HutbCarlaCity )"},{"location":"course/traffic_indicators/#hutbcarlacity","text":"\u200b \u4e3a \u652f\u6301 \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \u4fdd\u6b63 \u9ad8\u4fdd\u6b63 \u7684 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u4e09\u7ef4 \u5efa\u6a21 \uff0c \u8bbe\u8ba1 traffic _ indicators . py \u811a\u672c \u5bf9 \u8def\u53e3 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef \u3001 \u8def\u53e3 \u9971\u548c \u3001 \u6392\u961f \u957f\u5ea6 \u56db\u79cd \u8def\u53e3 \u771f\u5b9e \u771f\u5b9e\u6027 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u3002 \u9996\u5148 \u9700\u8981 \u5bf9 \u573a\u666f \u4e2d \u6dfb\u52a0 \u8f66\u8f86 \uff0c \u8fd0\u884c generate _ traffic . py \u811a\u672c \uff0c \u751f\u6210 \u8db3\u591f \u7684 \u8f66\u8f86 \u3002","title":"\u8def\u53e3 \u8bc4\u4ef7 \u6307\u6807 \u5206\u6790 \u8ba1\u7b97 ( HutbCarlaCity )"},{"location":"course/traffic_indicators/#_1","text":"argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , # \u9ed8\u8ba4 ip help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , # \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) 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 \u5c06 \u8def\u53e3 \u5b9a\u4e49 \u4e3a \u4e00\u4e2a \u77e9\u5f62 \u533a\u57df \uff0c \u5728 Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5f97\u5230 \u76f8\u5e94 \u5750\u6807 # \u8def\u53e3 \u5750\u6807 , junctions = [ [ - 194 , - 372 , 79 , - 34 ] , # \u6850\u6893 \u5761\u8def - \u4e8c\u73af \u897f\u4e8c\u73af \u8def\u53e3 [ 449 , 381 , 48 , - 87 ] # \u6850\u6893 \u5761\u8def - \u671b\u5cb3 \u8def\u53e3 ] # \u7528\u4e8e \u8ddf\u8e2a \u5df2\u7ecf \u8ba1\u7b97 \u7684 \u8f66\u8f86 id \u4ee5\u53ca \u8fdb\u5165 \u7684 \u65f6\u95f4 counted _ vehicles = [ { } , { } ]","title":"\u5b9a\u4e49 \u547d\u4ee4\u884c \u53c2\u6570 \u5e76 \u83b7\u53d6 \u4eff\u771f \u4e16\u754c \u5bf9\u8c61"},{"location":"course/traffic_indicators/#_2","text":"\u5b9a\u4e49 \u4fe9\u4e2a \u5168\u5c40 \u53d8\u91cf \u5168\u5c40\u53d8\u91cf SATURATION = 32 # \u8def\u53e3 \u6700\u5927 \u5bb9\u91cf DWELL _ TIME = 50 # 50 \u79d2 \u540e \u8ba4\u4e3a \u8f66\u8f86 \u5df2 \u79bb\u5f00 \u8def\u53e3","title":"\u8ba1\u7b97 \u5bf9\u5e94 \u8def\u53e3 \u4ea4\u901a\u6d41\u91cf \u3001 \u8f66\u5747 \u5ef6\u8bef \u3001 \u9971\u548c\u5ea6 \u3001 \u6392\u961f \u957f\u5ea6"},{"location":"course/traffic_indicators/#get_traffic_flow","text":"def get _ traffic _ flow ( world , junction , traffic _ flows , i , counted _ vehicles ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # counted _ vehicles = { } \u662f \u4e00\u4e2a \u5b57\u5178 current _ time = world . get _ snapshot ( ) . timestamp . elapsed _ seconds # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : vehicle _ id = vehicle . id # \u8868\u793a \u8f66\u8f86 \u8fd8 \u6ca1 \u7ecf\u8fc7 \u8def\u53e3 if vehicle _ id not in counted _ vehicles : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y # \u8f66\u8f86 \u7ecf\u8fc7 \u8def\u53e3 if x < = junction [ 0 ] and x > = junction [ 1 ] and y < = junction [ 2 ] and y > = junction [ 3 ] : # \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u52a0 1 traffic _ flows [ i ] = traffic _ flows [ i ] + 1 counted _ vehicles [ vehicle _ id ] = current _ time # \u79fb\u9664 \u79bb\u5f00 \u8def\u53e3 \u65f6\u95f4 \u8d85\u8fc7 dwell _ time \u7684 \u8f66\u8f86 vehicles _ to _ remove = [ vid for vid , enter _ time in counted _ vehicles . items ( ) if current _ time - enter _ time > DWELL _ TIME ] for vehicle _ id in vehicles _ to _ remove : del counted _ vehicles [ vehicle _ id ]","title":"\u8def\u53e3 \u4ea4\u901a\u6d41\u91cf \u51fd\u6570 get _ traffic _ flow ( )"},{"location":"course/traffic_indicators/#saturation","text":"\u91c7\u7528 \u8def\u53e3 \u5b9e\u9645 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf / \u8def\u53e3 \u9053\u8def \u6700\u5927 \u6240 \u627f\u8f7d \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u7b97 \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 # \u8ba1\u7b97 \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 def saturation ( world , junctions , counted _ vehicles ) : saturation _ degrees = [ 0 , 0 ] ave _ saturation = [ 0 , 0 ] # \u6d41\u91cf traffic _ flows = [ 0 , 0 ] # \u7528\u4e8e \u8ddf\u8e2a \u5df2\u7ecf \u8ba1\u7b97 \u7684 \u8f66\u8f86 id \u4ee5\u53ca \u8fdb\u5165 \u7684 \u65f6\u95f4 queue _ length = [ 0 , 0 ] time _ tamp = 0 while True : time _ tamp + = 1 # i \u8868\u793a \u7b2c i \u4e2a \u8def\u53e3 for i in range ( len ( junctions ) ) : get _ traffic _ flow ( world , junctions [ i ] , traffic _ flows , i , counted _ vehicles [ i ] ) saturation _ degrees [ i ] = traffic _ flows [ i ] / SATURATION + saturation _ degrees [ i ] if time _ tamp = = 10000 : for i in range ( len ( junctions ) ) : ave _ saturation [ i ] = saturation _ degrees [ i ] / 10000 queue _ length [ i ] = ( traffic _ flows [ i ] * 3 ) / 4 break return ave _ saturation","title":"\u8def\u53e3 \u9971\u548c\u5ea6 \u51fd\u6570 saturation ( )"},{"location":"course/traffic_indicators/#queue_lengths","text":"\u91c7\u7528 \u8def\u53e3 \u5b9e\u9645 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf * \u5e73\u5747 \u8f66\u8f86 \u957f\u5ea6 \u8ba1\u7b97 \u6392\u961f \u957f\u5ea6 # \u8ba1\u7b97 \u6392\u961f \u957f\u5ea6 def queue _ lengths ( world , junctions , counted _ vehicles ) : # \u6d41\u91cf traffic _ flows = [ 0 , 0 ] # \u7528\u4e8e \u8ddf\u8e2a \u5df2\u7ecf \u8ba1\u7b97 \u7684 \u8f66\u8f86 id \u4ee5\u53ca \u8fdb\u5165 \u7684 \u65f6\u95f4 queue _ length = [ 0 , 0 ] time _ tamp = 0 while True : time _ tamp + = 1 # i \u8868\u793a \u7b2c i \u4e2a \u8def\u53e3 for i in range ( len ( junctions ) ) : get _ traffic _ flow ( world , junctions [ i ] , traffic _ flows , i , counted _ vehicles [ i ] ) # print ( saturation _ degrees ) # 1000 \u4e2a \u65f6\u95f4 \u6b65 \u62df\u4f5c 1 \u5929 # print ( time _ tamp ) if time _ tamp = = 10000 : for i in range ( len ( junctions ) ) : queue _ length [ i ] = ( traffic _ flows [ i ] * 3 ) / 4 break return queue _ length","title":"\u6392\u961f \u957f\u5ea6 \u51fd\u6570 queue _ lengths ( )"},{"location":"course/traffic_indicators/#ave_delay","text":"\u91c7\u7528 \u4ee5\u4e0b \u8ba1\u7b97 \u516c\u5f0f \u8ba1\u7b97\u516c\u5f0f \u8fdb\u884c \u8ba1\u7b97 \uff1a \u200b \u5176\u4e2d D \u4e3a \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef \u53c2\u6570 \uff0c C \u4e3a \u8def\u53e3 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u914d\u65f6 \u603b \u65f6\u95f4 \uff0c y \u4e3a \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 \uff0c T \u4e3a \u5f53\u524d \u5206\u6790 \u65f6\u6bb5 \u7684 \u65f6\u957f \u3002 # \u5f97\u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f def get _ traffic _ light ( world , light _ id ) : traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) total _ time = 0 green _ time = 0 for traffic _ light in traffic _ lights : if traffic _ light . id = = light _ id : red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) total _ time = red _ time + green _ time + yellow _ time return total _ time , green _ time # \u8ba1\u7b97 \u5e73\u5747 \u8def\u53e3 \u8f66\u5747 \u5ef6\u8bef def ave _ delay ( world , light _ id , ave _ saturation , junctions ) : vehicle _ ave _ delays = [ ] total _ time , green _ time = get _ traffic _ light ( world , light _ id ) for i in range ( len ( junctions ) ) : vehicle _ ave _ delay = 0.5 * total _ time * ( 1 - green _ time / total _ time ) * * 2 / ( 1 - ave _ saturation [ i ] ) + min ( 1 , ave _ saturation [ i ] ) * 2 vehicle _ ave _ delays . append ( vehicle _ ave _ delay ) return vehicle _ ave _ delays","title":"\u8f66\u5747 \u5ef6\u8bef \u51fd\u6570 ave _ delay ( )"},{"location":"course/trajectory_tracking/","text":"\u8f68\u8ff9 \u8ddf\u8e2a Drive . py \u200b \u672c \u793a\u4f8b \u4f7f\u7528 Carla \u6a21\u62df \u6a21\u62df\u5668 \u6765 \u6267\u884c \u8f68\u8ff9 \u8ddf\u8e2a \u4efb\u52a1 \uff0c Drive . py \u4e3b\u8981 \u529f\u80fd \u5305\u62ec \u8fde\u63a5 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u8bbe\u7f6e \u6a21\u62df \u73af\u5883 \u3001 \u751f\u6210 \u8f66\u8f86 \u3001 \u8bfb\u53d6 \u548c \u5904\u7406 \u8def\u5f84 \u70b9 \u6570\u636e \u3001 \u63a7\u5236 \u8f66\u8f86 \u8fd0\u52a8 \u3001 \u8bb0\u5f55 \u548c \u4fdd\u5b58 \u4eff\u771f \u7ed3\u679c \u4e0b\u9762 \u5bf9\u4e8e \u4e3b\u8981 \u51fd\u6570 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u57fa\u4e8e \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \uff0c \u9996\u5148 \u9700\u8981 \u8fd0\u884c generate _ traffic . py \u3002 \u5b9a\u4e49 CARLA \u8bbe\u7f6e \u521b\u5efa Carla \u7684 \u4e16\u754c \u8bbe\u7f6e \u5bf9\u8c61 \uff0c \u5e76 \u6839\u636e \u914d\u7f6e \u8bbe\u7f6e \u5929\u6c14 \u6761\u4ef6 # \u5b9a\u4e49 \u4e86 \u4e00\u4e9b \u5168\u5c40 \u53d8\u91cf \u5168\u5c40\u53d8\u91cf \u7528\u4e8e \u63a7\u5236 \u6a21\u62df \u53c2\u6570 \uff0c \u5982 \u8fed\u4ee3 \u6b21\u6570 \u3001 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u3001 \u603b \u8fd0\u884c \u65f6\u95f4 \u3001 \u5929\u6c14 \u6761\u4ef6 \u7b49 \u3002 ITER _ FOR _ SIM _ TIMESTEP = 10 WAIT _ TIME _ BEFORE _ START = 5.00 TOTAL _ RUN _ TIME = 200.00 TOTAL _ FRAME _ BUFFER = 300 NUM _ PEDESTRIANS = 0 NUM _ VEHICLES = 2 SEED _ PEDESTRIANS = 0 SEED _ VEHICLES = 0 WEATHERID = { \" DEFAULT \" : 0 , \" CLEARNOON \" : 1 , \" CLOUDYNOON \" : 2 , ... } SIMWEATHER = WEATHERID [ \" CLEARNOON \" ] def make _ carla _ settings ( ) : settings = carla . WorldSettings ( synchronous _ mode = True , no _ rendering _ mode = False , fixed _ delta _ seconds = 0.02 ) weather = carla . WeatherParameters . ClearNoon if SIMWEATHER = = WEATHERID [ \" CLEARNOON \" ] : weather = carla . WeatherParameters . ClearNoon elif SIMWEATHER = = WEATHERID [ \" CLOUDYNOON \" ] : weather = carla . WeatherParameters . CloudyNoon # Add other weather conditions as needed return settings , weather \u8ba1\u65f6 \u8ba1\u65f6\u5668 Timer \u4e3a \u4e00\u4e2a \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u7c7b \uff0c \u7528\u4e8e \u6d4b\u91cf \u65f6\u95f4 \u95f4\u9694 \u548c \u8ba1\u7b97 \u6bcf\u79d2 \u7684 tick \u6570 \u3002 class Timer ( object ) : def __ init __ ( self , period ) : self . step = 0 self ._ lap _ step = 0 self ._ lap _ time = time . time ( ) self ._ period _ for _ lap = period def tick ( self ) : self . step + = 1 def has _ exceeded _ lap _ period ( self ) : return self . elapsed _ seconds _ since _ lap ( ) > = self ._ period _ for _ lap def lap ( self ) : self ._ lap _ step = self . step self ._ lap _ time = time . time ( ) def ticks _ per _ second ( self ) : return float ( self . step - self ._ lap _ step ) / self . elapsed _ seconds _ since _ lap ( ) def elapsed _ seconds _ since _ lap ( self ) : return time . time ( ) - self ._ lap _ time \u83b7\u53d6 \u8f66\u8f86 \u4fe1\u606f \u83b7\u53d6 \u8f66\u8f86 \u7684 \u5f53\u524d \u4f4d\u7f6e \u548c \u504f\u822a \u89d2 def get _ current _ pose ( vehicle ) : transform = vehicle . get _ transform ( ) x = transform . location . x y = transform . location . y yaw = math . radians ( transform . rotation . yaw ) return ( x , y , yaw ) \u53d1\u9001 \u63a7\u5236 \u547d\u4ee4 \u7ed9 \u8f66\u8f86 \uff0c \u63a7\u5236 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u7b49 def send _ control _ command ( vehicle , throttle , steer , brake , hand _ brake = False , reverse = False ) : control = carla . VehicleControl ( ) steer = np . fmax ( np . fmin ( steer , 1.0 ) , - 1.0 ) throttle = np . fmax ( np . fmin ( throttle , 1.0 ) , 0 ) brake = np . fmax ( np . fmin ( brake , 1.0 ) , 0 ) control . steer = steer control . throttle = throttle control . brake = brake control . hand _ brake = hand _ brake control . reverse = reverse vehicle . apply _ control ( control ) \u5c06 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u6570\u636e \u5199\u5165 CSV \u6587\u4ef6 def write _ trajectory _ file ( x _ list , y _ list , v _ list , t _ list , vehicle _ id ) : create _ controller _ output _ dir ( CONTROLLER _ OUTPUT _ FOLDER ) file _ name = os . path . join ( CONTROLLER _ OUTPUT _ FOLDER , f ' Trajectory _ { vehicle _ id } . csv ' ) with open ( file _ name , ' w ' ) as trajectory _ file : for i in range ( len ( x _ list ) ) : trajectory _ file . write ( ' % 0.3 f , % 0.3 f , % 0.3 f , % 0.3 f \\ n ' % ( t _ list [ i ] , x _ list [ i ] , y _ list [ i ] , v _ list [ i ] ) ) \u6267\u884c \u8f68\u8ff9 \u8ddf\u8e2a \u4efb\u52a1 \u6267\u884c \u8f68\u8ff9 \u8ddf\u8e2a \u4efb\u52a1 \uff0c \u5305\u62ec \u8fde\u63a5 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u8bbe\u7f6e \u6a21\u62df \u73af\u5883 \u3001 \u751f\u6210 \u8f66\u8f86 \u7b49 def exec _ waypoint _ nav _ demo ( args ) : client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) settings , weather = make _ carla _ settings ( ) world . apply _ settings ( settings ) world . set _ weather ( weather ) blueprint _ library = world . get _ blueprint _ library ( ) vehicle _ bp = blueprint _ library . filter ( ' vehicle . audi . tt ' ) [ 0 ] spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) vehicles = [ ] vehicle _ 1 = world . try _ spawn _ actor ( vehicle _ bp , spawn _ points [ 216 ] ) vehicle _ 2 = world . try _ spawn _ actor ( vehicle _ bp , spawn _ points [ 11 ] ) vehicles . append ( vehicle _ 1 ) vehicles . append ( vehicle _ 2 ) \u8fd0\u884c \u7ed3\u679c","title":"\u8f68\u8ff9 \u8ddf\u8e2a Drive . py"},{"location":"course/trajectory_tracking/#drivepy","text":"\u200b \u672c \u793a\u4f8b \u4f7f\u7528 Carla \u6a21\u62df \u6a21\u62df\u5668 \u6765 \u6267\u884c \u8f68\u8ff9 \u8ddf\u8e2a \u4efb\u52a1 \uff0c Drive . py \u4e3b\u8981 \u529f\u80fd \u5305\u62ec \u8fde\u63a5 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u8bbe\u7f6e \u6a21\u62df \u73af\u5883 \u3001 \u751f\u6210 \u8f66\u8f86 \u3001 \u8bfb\u53d6 \u548c \u5904\u7406 \u8def\u5f84 \u70b9 \u6570\u636e \u3001 \u63a7\u5236 \u8f66\u8f86 \u8fd0\u52a8 \u3001 \u8bb0\u5f55 \u548c \u4fdd\u5b58 \u4eff\u771f \u7ed3\u679c \u4e0b\u9762 \u5bf9\u4e8e \u4e3b\u8981 \u51fd\u6570 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u57fa\u4e8e \u6e56 \u5de5\u5546 \u573a\u666f ( WindowsNoEditor ) \uff0c \u9996\u5148 \u9700\u8981 \u8fd0\u884c generate _ traffic . py \u3002","title":"\u8f68\u8ff9 \u8ddf\u8e2a Drive . py"},{"location":"course/trajectory_tracking/#carla","text":"\u521b\u5efa Carla \u7684 \u4e16\u754c \u8bbe\u7f6e \u5bf9\u8c61 \uff0c \u5e76 \u6839\u636e \u914d\u7f6e \u8bbe\u7f6e \u5929\u6c14 \u6761\u4ef6 # \u5b9a\u4e49 \u4e86 \u4e00\u4e9b \u5168\u5c40 \u53d8\u91cf \u5168\u5c40\u53d8\u91cf \u7528\u4e8e \u63a7\u5236 \u6a21\u62df \u53c2\u6570 \uff0c \u5982 \u8fed\u4ee3 \u6b21\u6570 \u3001 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u3001 \u603b \u8fd0\u884c \u65f6\u95f4 \u3001 \u5929\u6c14 \u6761\u4ef6 \u7b49 \u3002 ITER _ FOR _ SIM _ TIMESTEP = 10 WAIT _ TIME _ BEFORE _ START = 5.00 TOTAL _ RUN _ TIME = 200.00 TOTAL _ FRAME _ BUFFER = 300 NUM _ PEDESTRIANS = 0 NUM _ VEHICLES = 2 SEED _ PEDESTRIANS = 0 SEED _ VEHICLES = 0 WEATHERID = { \" DEFAULT \" : 0 , \" CLEARNOON \" : 1 , \" CLOUDYNOON \" : 2 , ... } SIMWEATHER = WEATHERID [ \" CLEARNOON \" ] def make _ carla _ settings ( ) : settings = carla . WorldSettings ( synchronous _ mode = True , no _ rendering _ mode = False , fixed _ delta _ seconds = 0.02 ) weather = carla . WeatherParameters . ClearNoon if SIMWEATHER = = WEATHERID [ \" CLEARNOON \" ] : weather = carla . WeatherParameters . ClearNoon elif SIMWEATHER = = WEATHERID [ \" CLOUDYNOON \" ] : weather = carla . WeatherParameters . CloudyNoon # Add other weather conditions as needed return settings , weather","title":"\u5b9a\u4e49 CARLA \u8bbe\u7f6e"},{"location":"course/trajectory_tracking/#_1","text":"Timer \u4e3a \u4e00\u4e2a \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u7c7b \uff0c \u7528\u4e8e \u6d4b\u91cf \u65f6\u95f4 \u95f4\u9694 \u548c \u8ba1\u7b97 \u6bcf\u79d2 \u7684 tick \u6570 \u3002 class Timer ( object ) : def __ init __ ( self , period ) : self . step = 0 self ._ lap _ step = 0 self ._ lap _ time = time . time ( ) self ._ period _ for _ lap = period def tick ( self ) : self . step + = 1 def has _ exceeded _ lap _ period ( self ) : return self . elapsed _ seconds _ since _ lap ( ) > = self ._ period _ for _ lap def lap ( self ) : self ._ lap _ step = self . step self ._ lap _ time = time . time ( ) def ticks _ per _ second ( self ) : return float ( self . step - self ._ lap _ step ) / self . elapsed _ seconds _ since _ lap ( ) def elapsed _ seconds _ since _ lap ( self ) : return time . time ( ) - self ._ lap _ time","title":"\u8ba1\u65f6\u5668"},{"location":"course/trajectory_tracking/#_2","text":"\u83b7\u53d6 \u8f66\u8f86 \u7684 \u5f53\u524d \u4f4d\u7f6e \u548c \u504f\u822a \u89d2 def get _ current _ pose ( vehicle ) : transform = vehicle . get _ transform ( ) x = transform . location . x y = transform . location . y yaw = math . radians ( transform . rotation . yaw ) return ( x , y , yaw ) \u53d1\u9001 \u63a7\u5236 \u547d\u4ee4 \u7ed9 \u8f66\u8f86 \uff0c \u63a7\u5236 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u7b49 def send _ control _ command ( vehicle , throttle , steer , brake , hand _ brake = False , reverse = False ) : control = carla . VehicleControl ( ) steer = np . fmax ( np . fmin ( steer , 1.0 ) , - 1.0 ) throttle = np . fmax ( np . fmin ( throttle , 1.0 ) , 0 ) brake = np . fmax ( np . fmin ( brake , 1.0 ) , 0 ) control . steer = steer control . throttle = throttle control . brake = brake control . hand _ brake = hand _ brake control . reverse = reverse vehicle . apply _ control ( control ) \u5c06 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u6570\u636e \u5199\u5165 CSV \u6587\u4ef6 def write _ trajectory _ file ( x _ list , y _ list , v _ list , t _ list , vehicle _ id ) : create _ controller _ output _ dir ( CONTROLLER _ OUTPUT _ FOLDER ) file _ name = os . path . join ( CONTROLLER _ OUTPUT _ FOLDER , f ' Trajectory _ { vehicle _ id } . csv ' ) with open ( file _ name , ' w ' ) as trajectory _ file : for i in range ( len ( x _ list ) ) : trajectory _ file . write ( ' % 0.3 f , % 0.3 f , % 0.3 f , % 0.3 f \\ n ' % ( t _ list [ i ] , x _ list [ i ] , y _ list [ i ] , v _ list [ i ] ) )","title":"\u83b7\u53d6 \u8f66\u8f86 \u4fe1\u606f"},{"location":"course/trajectory_tracking/#_3","text":"\u6267\u884c \u8f68\u8ff9 \u8ddf\u8e2a \u4efb\u52a1 \uff0c \u5305\u62ec \u8fde\u63a5 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u8bbe\u7f6e \u6a21\u62df \u73af\u5883 \u3001 \u751f\u6210 \u8f66\u8f86 \u7b49 def exec _ waypoint _ nav _ demo ( args ) : client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) settings , weather = make _ carla _ settings ( ) world . apply _ settings ( settings ) world . set _ weather ( weather ) blueprint _ library = world . get _ blueprint _ library ( ) vehicle _ bp = blueprint _ library . filter ( ' vehicle . audi . tt ' ) [ 0 ] spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) vehicles = [ ] vehicle _ 1 = world . try _ spawn _ actor ( vehicle _ bp , spawn _ points [ 216 ] ) vehicle _ 2 = world . try _ spawn _ actor ( vehicle _ bp , spawn _ points [ 11 ] ) vehicles . append ( vehicle _ 1 ) vehicles . append ( vehicle _ 2 )","title":"\u6267\u884c \u8f68\u8ff9 \u8ddf\u8e2a \u4efb\u52a1"},{"location":"course/trajectory_tracking/#_4","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"course/visualization/","text":"\u4ea4\u901a \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u5206\u6790 \u7b80\u4ecb \u4ea4\u901a \u6570\u636e \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5206\u6790 \u662f \u901a\u8fc7 \u4f7f\u7528 \u56fe\u8868 \u548c \u56fe\u5f62 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u4ea4\u901a \u6570\u636e \uff0c \u4ece\u800c \u63d0\u4f9b \u5bf9 \u4ea4\u901a \u6a21\u5f0f \u548c \u884c\u4e3a \u7684 \u6d1e\u5bdf \uff0c \u4ea4\u901a \u7cfb\u7edf \u4ea4\u901a\u7cfb\u7edf \u6570\u636e \u6765\u6e90 \u5982\u4e0b \uff1a \u4ea4\u901a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e GPS \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u754c\u9762 \u672c \u7cfb\u7edf \u57fa\u4e8e carla \u4eff\u771f \u5e73\u53f0 \u5b9e\u65f6 \u6536\u96c6 \u8f66\u8f86 \u4eff\u771f \u884c\u9a76 \u6570\u636e \u8fdb\u884c \u76f8\u5173 \u4ea4\u901a \u6570\u636e \u6307\u6807 \u7684 \u8ba1\u7b97 \u4e0e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 \u6392\u884c \u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 \u662f \u6307 \u4e00\u65f6 \u65f6\u95f4 \u4e00\u65f6\u95f4 \u67d0\u4e00\u65f6\u95f4 \u6bb5 \u5185 \uff0c \u4ea4\u901a \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4e0e\u5176 \u6700\u5927 \u901a\u884c \u80fd\u529b \u4e4b \u6bd4 \u3002 \u5b83 \u53cd\u6620 \u4e86 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u5bf9 \u8def\u53e3 \u627f\u8f7d \u80fd\u529b \u627f\u8f7d\u80fd\u529b \u7684 \u5360\u7528 \u7a0b\u5ea6 \u3002 \u672c \u7cfb\u7edf \u7ed9\u51fa \u4e86 \u573a\u666f \u4e2d \u9053\u8def \u7684 \u9971\u548c \u9971\u548c\u5ea6 \u6392\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u5982\u4e0b \uff1a \u8def\u53e3 \u8bc4\u4ef7 \u6307\u6807 \u672c \u7cfb\u7edf \u4ece \u8f66\u8f86 \u901f\u5ea6 \u3001 \u9053\u8def \u8bc4\u4ef7 \u3001 \u8def\u53e3 \u505c\u8f66 \u901f\u5ea6 \u3001 \u6392\u961f \u957f\u5ea6 \u3001 \u8f66\u5747 \u5ef6\u8bef \u53ca \u4e00\u5468 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u60c5\u51b5 \u6765 \u7efc\u5408 \u505a\u51fa \u5bf9 \u9053\u8def \u62e5\u5835 \u60c5\u51b5 \u8fdb\u884c \u8bc4\u4ef7 \uff0c \u5e76 \u5bf9 \u672a\u6765 24 \u5c0f\u65f6 \u62e5\u5835 \u8d8b\u52bf \u505a\u51fa \u9884\u6d4b \u4eff\u771f \u6d41\u91cf \u548c \u771f\u5b9e \u6d41\u91cf \u5bf9\u6bd4 \u672c \u7cfb\u7edf \u5c06 \u4eff\u771f \u6d41\u91cf \u4e0e \u5b9e\u9645 \u771f\u5b9e \u6d41\u91cf \u8fdb\u884c \u5bf9\u6bd4 \uff0c \u4ee5 \u63a2\u7d22 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u62e5\u5835 \u72b6\u51b5 \u7b49 \u771f\u5b9e \u8d8b\u52bf \u4e0e \u89c4\u5f8b \uff0c \u5e76 \u8fdb\u884c \u540e\u7eed \u7684 \u573a\u666f \u4f18\u5316 \u53ca \u6539\u8fdb \u7b56\u7565 \u7684 \u9a8c\u8bc1 \u5b9e\u9a8c \u3002","title":"\u4ea4\u901a \u6570\u636e \u53ef\u89c6\u5316 \u5206\u6790"},{"location":"course/visualization/#_1","text":"","title":"\u4ea4\u901a \u6570\u636e \u53ef\u89c6\u5316 \u5206\u6790"},{"location":"course/visualization/#_2","text":"\u4ea4\u901a \u6570\u636e \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5206\u6790 \u662f \u901a\u8fc7 \u4f7f\u7528 \u56fe\u8868 \u548c \u56fe\u5f62 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u4ea4\u901a \u6570\u636e \uff0c \u4ece\u800c \u63d0\u4f9b \u5bf9 \u4ea4\u901a \u6a21\u5f0f \u548c \u884c\u4e3a \u7684 \u6d1e\u5bdf \uff0c \u4ea4\u901a \u7cfb\u7edf \u4ea4\u901a\u7cfb\u7edf \u6570\u636e \u6765\u6e90 \u5982\u4e0b \uff1a \u4ea4\u901a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e GPS \u6570\u636e","title":"\u7b80\u4ecb"},{"location":"course/visualization/#_3","text":"\u672c \u7cfb\u7edf \u57fa\u4e8e carla \u4eff\u771f \u5e73\u53f0 \u5b9e\u65f6 \u6536\u96c6 \u8f66\u8f86 \u4eff\u771f \u884c\u9a76 \u6570\u636e \u8fdb\u884c \u76f8\u5173 \u4ea4\u901a \u6570\u636e \u6307\u6807 \u7684 \u8ba1\u7b97 \u4e0e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u53ef\u89c6\u5316 \u754c\u9762"},{"location":"course/visualization/#_4","text":"\u8def\u53e3 \u9971\u548c \u9971\u548c\u5ea6 \u662f \u6307 \u4e00\u65f6 \u65f6\u95f4 \u4e00\u65f6\u95f4 \u67d0\u4e00\u65f6\u95f4 \u6bb5 \u5185 \uff0c \u4ea4\u901a \u8def\u53e3 \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4e0e\u5176 \u6700\u5927 \u901a\u884c \u80fd\u529b \u4e4b \u6bd4 \u3002 \u5b83 \u53cd\u6620 \u4e86 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u5bf9 \u8def\u53e3 \u627f\u8f7d \u80fd\u529b \u627f\u8f7d\u80fd\u529b \u7684 \u5360\u7528 \u7a0b\u5ea6 \u3002 \u672c \u7cfb\u7edf \u7ed9\u51fa \u4e86 \u573a\u666f \u4e2d \u9053\u8def \u7684 \u9971\u548c \u9971\u548c\u5ea6 \u6392\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u5982\u4e0b \uff1a","title":"\u8def\u53e3 \u9971\u548c\u5ea6 \u6392\u884c"},{"location":"course/visualization/#_5","text":"\u672c \u7cfb\u7edf \u4ece \u8f66\u8f86 \u901f\u5ea6 \u3001 \u9053\u8def \u8bc4\u4ef7 \u3001 \u8def\u53e3 \u505c\u8f66 \u901f\u5ea6 \u3001 \u6392\u961f \u957f\u5ea6 \u3001 \u8f66\u5747 \u5ef6\u8bef \u53ca \u4e00\u5468 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u60c5\u51b5 \u6765 \u7efc\u5408 \u505a\u51fa \u5bf9 \u9053\u8def \u62e5\u5835 \u60c5\u51b5 \u8fdb\u884c \u8bc4\u4ef7 \uff0c \u5e76 \u5bf9 \u672a\u6765 24 \u5c0f\u65f6 \u62e5\u5835 \u8d8b\u52bf \u505a\u51fa \u9884\u6d4b","title":"\u8def\u53e3 \u8bc4\u4ef7 \u6307\u6807"},{"location":"course/visualization/#_6","text":"\u672c \u7cfb\u7edf \u5c06 \u4eff\u771f \u6d41\u91cf \u4e0e \u5b9e\u9645 \u771f\u5b9e \u6d41\u91cf \u8fdb\u884c \u5bf9\u6bd4 \uff0c \u4ee5 \u63a2\u7d22 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3001 \u62e5\u5835 \u72b6\u51b5 \u7b49 \u771f\u5b9e \u8d8b\u52bf \u4e0e \u89c4\u5f8b \uff0c \u5e76 \u8fdb\u884c \u540e\u7eed \u7684 \u573a\u666f \u4f18\u5316 \u53ca \u6539\u8fdb \u7b56\u7565 \u7684 \u9a8c\u8bc1 \u5b9e\u9a8c \u3002","title":"\u4eff\u771f \u6d41\u91cf \u548c \u771f\u5b9e \u6d41\u91cf \u5bf9\u6bd4"},{"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 ( ) ) \u4ece Python \u4e2d \u8c03\u8bd5 * . cpp \u5728 \u539f\u59cb . py \u811a\u672c \u4e2d \u6dfb\u52a0 \u6253\u5370 \u8fdb\u7a0b \u53f7 \u7684 \u4ee3\u7801 \uff0c \u5e76 \u4f7f \u8c03\u8bd5 \u505c\u6b62 \u4e8e cpp \u51fd\u6570 \u8c03\u7528 \u51fd\u6570\u8c03\u7528 \u4e4b\u524d \u3002 import os # \u83b7\u53d6 \u5f53\u524d \u8fdb\u7a0b ID \uff08 \u4fbf\u4e8e \u8c03\u8bd5 \uff09 process _ id = os . getpid ( ) print ( \" Current process id is : \" , process _ id ) import hello _ ext print ( hello _ ext . greet ( ) ) \u5728 visual studio \u4e2d \u6dfb\u52a0 \u65ad\u70b9 \uff0c \u5e76 \u9644\u7740 \u5230 \u7b2c 1 \u6b65 \u7684 \u8fdb\u7a0b \u4e2d \u3002 \u5728 * . py \u4e2d \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \uff0c \u4f1a \u5728 vs \u4e2d \u6682\u505c \u3002 whl \u5b89\u88c5 \u5b89\u88c5\u5305 \u7684 \u8c03\u5f0f \u53c2\u8003 \u94fe\u63a5 \uff0c \u8f6c \u81f3 \u76ee\u5f55 carla \\ PythonAPI \\ carla \uff0c \u8fd0\u884c pip install - e . \uff0c \u5728 Python37 \\ Lib \\ site - packages \\ easy - install . pth \u6587\u4ef6 \u4e2d \u751f\u6210 \u6307\u5411 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 \u8def\u5f84 \u3002 - e \u6216 -- editable \uff1a \u8fd9\u4e2a \u9009\u9879 \u8868\u793a \u4ee5 \u201c \u53ef \u7f16\u8f91 \u201d \u6a21\u5f0f \u5b89\u88c5 \u5b89\u88c5\u5305 \u3002 \u5728 \u8fd9\u79cd \u6a21\u5f0f \u4e0b \uff0c \u5305 \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u53ef\u4ee5 \u5728 \u672c\u5730 \u8fdb\u884c \u4fee\u6539 \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fee\u6539 \u4f1a \u7acb\u5373 \u53cd\u6620 \u5230 \u7cfb\u7edf \u4e2d\u8be5 \u5305 \u7684 \u884c\u4e3a \u4e0a \uff0c \u65e0\u9700 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u3002 \u8fd9 \u5bf9\u4e8e \u5f00\u53d1 \u548c \u8c03\u8bd5 \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e0b \u5b89\u88c5 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u8f6f \u8fde\u63a5 \u5f15\u7528 \u8be5\u5305 \uff08 \u800c \u4e0d\u662f \u5c06 \u5305 \u590d\u5236 \u590d\u5236\u5230 site - packages \u76ee\u5f55 \u4e0b \uff09 \u3002 \u8fd9\u4e2a \u8f6f \u8fde\u63a5 \u662f \u4e00\u4e2a \u6307\u5411 \u5305 \u4ee3\u7801 \u7684 \u7b26\u53f7 \u94fe\u63a5 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u5305 \u7684 \u4fee\u6539 \u76f4\u63a5 \u53cd\u6620 \u5230 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e0b \u7684 \u9879\u76ee \u4e2d \uff0c \u4ece\u800c \u65b9\u4fbf \u5f00\u53d1 \u548c \u8c03\u8bd5 \u3002 \u89e3\u91ca setup . py \u53c2\u6570 \u8bf4\u660e ext _ modules \u7528\u4e8e \u6784\u5efa C++ \u6269\u5c55 \u6269\u5c55 \u5305 \uff0c \u5176\u662f Extension \u5b9e\u4f8b \u7684 \u5217\u8868 \uff0c \u6bcf \u4e00\u4e2a Extension \u5b9e\u4f8b \u63cf\u8ff0 \u4e86 \u4e00\u4e2a \u72ec\u7acb \u7684 \u6269\u5c55 \u6a21\u5757 \uff0c \u6269\u5c55 \u6a21\u5757 \u53ef\u4ee5 \u8bbe\u7f6e \u6269\u5c55 \u5305\u540d \u3001 \u6587\u4ef6 \u6e90\u6587\u4ef6 source \u3001 \u6587\u4ef6 \u5934\u6587\u4ef6 include _ dirs \u3001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u53ca\u5176 \u8def\u5f84 library _ dirs \u3001 \u7f16\u8bd1 \u53c2\u6570 extra _ compile _ args \u3001 \u94fe\u63a5 \u53c2\u6570 extra _ compile _ args \u3001 \u4f9d\u8d56 depends \u7b49 \u3002 package _ dir = { ' ' : ' source ' } \u201c root package \u201d \u4e2d \u7684 \u6a21\u5757 \u90fd \u5728 source \u76ee\u5f55 \u4e2d packages = [ ' carla ' ] \u9700\u8981 \u5904\u7406 \u7684 \u5305 \u76ee\u5f55 \uff08 \u5305\u542b \u4e86 \u4e00\u4e9b . cpp \u6587\u4ef6 \uff09 GLI \u5168\u5c40 \u89e3\u91ca \u91ca\u5668 \u89e3\u91ca\u5668 \u9501 \uff08 GLI , Global Interpreter Lock \uff09 \uff1a \u5728 \u8c03\u7528 \u5916\u90e8 \u4ee3\u7801 \uff08 \u5982 C \u3001 C++ \u6269\u5c55 \u51fd\u6570 \uff09 \u7684 \u65f6\u5019 \uff0c GIL \u5c06\u4f1a \u88ab \u9501\u5b9a \uff0c \u76f4\u5230 \u8fd9\u4e2a \u51fd\u6570 \u7ed3\u675f \u4e3a\u6b62 \uff08 \u7531\u4e8e \u671f\u95f4 \u6ca1\u6709 python \u7684 \u5b57\u8282 \u7801 \u8fd0\u884c \uff0c \u6240\u4ee5 \u4e0d\u4f1a \u505a \u7ebf\u7a0b \u5207\u6362 \uff09 \u3002","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":"demo/boost_python/#pythoncpp","text":"\u5728 \u539f\u59cb . py \u811a\u672c \u4e2d \u6dfb\u52a0 \u6253\u5370 \u8fdb\u7a0b \u53f7 \u7684 \u4ee3\u7801 \uff0c \u5e76 \u4f7f \u8c03\u8bd5 \u505c\u6b62 \u4e8e cpp \u51fd\u6570 \u8c03\u7528 \u51fd\u6570\u8c03\u7528 \u4e4b\u524d \u3002 import os # \u83b7\u53d6 \u5f53\u524d \u8fdb\u7a0b ID \uff08 \u4fbf\u4e8e \u8c03\u8bd5 \uff09 process _ id = os . getpid ( ) print ( \" Current process id is : \" , process _ id ) import hello _ ext print ( hello _ ext . greet ( ) ) \u5728 visual studio \u4e2d \u6dfb\u52a0 \u65ad\u70b9 \uff0c \u5e76 \u9644\u7740 \u5230 \u7b2c 1 \u6b65 \u7684 \u8fdb\u7a0b \u4e2d \u3002 \u5728 * . py \u4e2d \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \uff0c \u4f1a \u5728 vs \u4e2d \u6682\u505c \u3002","title":"\u4ece Python \u4e2d \u8c03\u8bd5 * . cpp"},{"location":"demo/boost_python/#whl","text":"\u53c2\u8003 \u94fe\u63a5 \uff0c \u8f6c \u81f3 \u76ee\u5f55 carla \\ PythonAPI \\ carla \uff0c \u8fd0\u884c pip install - e . \uff0c \u5728 Python37 \\ Lib \\ site - packages \\ easy - install . pth \u6587\u4ef6 \u4e2d \u751f\u6210 \u6307\u5411 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 \u8def\u5f84 \u3002 - e \u6216 -- editable \uff1a \u8fd9\u4e2a \u9009\u9879 \u8868\u793a \u4ee5 \u201c \u53ef \u7f16\u8f91 \u201d \u6a21\u5f0f \u5b89\u88c5 \u5b89\u88c5\u5305 \u3002 \u5728 \u8fd9\u79cd \u6a21\u5f0f \u4e0b \uff0c \u5305 \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u53ef\u4ee5 \u5728 \u672c\u5730 \u8fdb\u884c \u4fee\u6539 \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fee\u6539 \u4f1a \u7acb\u5373 \u53cd\u6620 \u5230 \u7cfb\u7edf \u4e2d\u8be5 \u5305 \u7684 \u884c\u4e3a \u4e0a \uff0c \u65e0\u9700 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u3002 \u8fd9 \u5bf9\u4e8e \u5f00\u53d1 \u548c \u8c03\u8bd5 \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e0b \u5b89\u88c5 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u8f6f \u8fde\u63a5 \u5f15\u7528 \u8be5\u5305 \uff08 \u800c \u4e0d\u662f \u5c06 \u5305 \u590d\u5236 \u590d\u5236\u5230 site - packages \u76ee\u5f55 \u4e0b \uff09 \u3002 \u8fd9\u4e2a \u8f6f \u8fde\u63a5 \u662f \u4e00\u4e2a \u6307\u5411 \u5305 \u4ee3\u7801 \u7684 \u7b26\u53f7 \u94fe\u63a5 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u5305 \u7684 \u4fee\u6539 \u76f4\u63a5 \u53cd\u6620 \u5230 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e0b \u7684 \u9879\u76ee \u4e2d \uff0c \u4ece\u800c \u65b9\u4fbf \u5f00\u53d1 \u548c \u8c03\u8bd5 \u3002","title":"whl \u5b89\u88c5\u5305 \u7684 \u8c03\u5f0f"},{"location":"demo/boost_python/#_2","text":"","title":"\u89e3\u91ca"},{"location":"demo/boost_python/#setuppy","text":"\u53c2\u6570 \u8bf4\u660e ext _ modules \u7528\u4e8e \u6784\u5efa C++ \u6269\u5c55 \u6269\u5c55 \u5305 \uff0c \u5176\u662f Extension \u5b9e\u4f8b \u7684 \u5217\u8868 \uff0c \u6bcf \u4e00\u4e2a Extension \u5b9e\u4f8b \u63cf\u8ff0 \u4e86 \u4e00\u4e2a \u72ec\u7acb \u7684 \u6269\u5c55 \u6a21\u5757 \uff0c \u6269\u5c55 \u6a21\u5757 \u53ef\u4ee5 \u8bbe\u7f6e \u6269\u5c55 \u5305\u540d \u3001 \u6587\u4ef6 \u6e90\u6587\u4ef6 source \u3001 \u6587\u4ef6 \u5934\u6587\u4ef6 include _ dirs \u3001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u53ca\u5176 \u8def\u5f84 library _ dirs \u3001 \u7f16\u8bd1 \u53c2\u6570 extra _ compile _ args \u3001 \u94fe\u63a5 \u53c2\u6570 extra _ compile _ args \u3001 \u4f9d\u8d56 depends \u7b49 \u3002 package _ dir = { ' ' : ' source ' } \u201c root package \u201d \u4e2d \u7684 \u6a21\u5757 \u90fd \u5728 source \u76ee\u5f55 \u4e2d packages = [ ' carla ' ] \u9700\u8981 \u5904\u7406 \u7684 \u5305 \u76ee\u5f55 \uff08 \u5305\u542b \u4e86 \u4e00\u4e9b . cpp \u6587\u4ef6 \uff09","title":"setup . py"},{"location":"demo/boost_python/#gli","text":"\u5168\u5c40 \u89e3\u91ca \u91ca\u5668 \u89e3\u91ca\u5668 \u9501 \uff08 GLI , Global Interpreter Lock \uff09 \uff1a \u5728 \u8c03\u7528 \u5916\u90e8 \u4ee3\u7801 \uff08 \u5982 C \u3001 C++ \u6269\u5c55 \u51fd\u6570 \uff09 \u7684 \u65f6\u5019 \uff0c GIL \u5c06\u4f1a \u88ab \u9501\u5b9a \uff0c \u76f4\u5230 \u8fd9\u4e2a \u51fd\u6570 \u7ed3\u675f \u4e3a\u6b62 \uff08 \u7531\u4e8e \u671f\u95f4 \u6ca1\u6709 python \u7684 \u5b57\u8282 \u7801 \u8fd0\u884c \uff0c \u6240\u4ee5 \u4e0d\u4f1a \u505a \u7ebf\u7a0b \u5207\u6362 \uff09 \u3002","title":"GLI"},{"location":"faq/co-simulation/","text":"\u8054\u5408 \u4eff\u771f \u3001 Python API \u3001 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u8054\u5408 \u4eff\u771f & DIY 1 \u3001 CARLA \u548c Sumo \u80fd\u5426 \u8054\u5408 \u4eff\u771f \uff1f \u7b54 \uff1a \u53ef\u4ee5 \uff0c \u53c2\u8003 \u5b98\u65b9 \u6587\u6863 \u3002 \u6839\u636e \u5b9e\u8df5 \u7ecf\u9a8c \u5b9e\u8df5\u7ecf\u9a8c \uff1a Sumo \u8ba1\u7b97 \u592a\u6162 \uff0c \u5927 \u6982\u7387 \u4f1a \u5bfc\u81f4 CARLA \u5e27 \u7387 \u4e0d\u53ca \u9884\u671f \u3002 2 \u3001 CARLA \u548c \u5176\u4ed6 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \uff1f \u7b54 \uff1a \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \u7684 \u6574\u4f53 \u6d41\u7a0b \uff1a CARLA \u8f93\u51fa \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u64cd\u63a7 \uff08 \u5239\u8f66 \u3001 \u6cb9\u95e8 \u3001 \u79bb\u5408 \u3001 \u6863\u4f4d \u3001 \u8f6c\u5411 \uff09 \u5230 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \uff1b \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u89e3\u7b97 \u8f66\u8f86 \u7684 \u4f4d\u59ff \u4fe1\u606f \uff08 Position \u3001 Rotation \uff09 \u5e76\u4e14 \u8f93\u51fa \u5230 CARLA \uff1b CARLA \u6839\u636e \u63a5\u6536 \u5230 \u7684 \u4f4d\u59ff \u4fe1\u606f \u8fdb\u884c \u66f4\u65b0 \u3002 \u53ea\u8981 \u80fd \u505a\u5230 \u4e0a\u8ff0 \u4e8b\u9879 \uff0c \u5c31 \u53ef\u4ee5 \u8fdb\u884c \u8054\u5408 \u4eff\u771f \u3002 3 \u3001 CARLA \u600e\u4e48 \u6267\u884c \u573a\u666f \uff1f \u7b54 \uff1a CARLA \u5b98\u65b9 \u6709 \u573a\u666f \u6267\u884c \u6267\u884c\u5668 \uff1a Scenario Runner \u3002 \u53c2\u8003 \u5b98\u65b9 \u6587\u6863 \u3002 4 \u3001 CARLA \u600e\u4e48 \u5bfc\u5165 DIY \u5730\u56fe \uff1f \u7b54 \uff1a \u53c2\u8003 \u5b98\u65b9 \u6587\u6863 \u3002 \u53ef\u4ee5 \u4f7f\u7528 RoadRunner \u5236\u4f5c \u5730\u56fe \uff0c \u5bfc\u51fa fbx \u548c xodr \u6587\u4ef6 \u3002 \u5982\u679c \u662f \u7f8e\u672f \u5236\u4f5c \u7684 UE \u5173\u5361 \uff0c \u9002\u914d \u5408\u9002 \u7684 xodr \u4e5f \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u8fd9 \u6d89\u53ca \u5230 \u90e8\u5206 Carla \u529f\u80fd \u662f\u5426 \u53ef\u4ee5 \u6b63\u5e38 \u4f7f\u7528 \u3002 \u5f53\u7136 \uff0c \u5730\u56fe \u592a\u5927 \u4e86 \u4f1a \u6709 \u6027\u80fd \u95ee\u9898 \uff0c \u6bd4\u5982 GPU \u663e\u5b58 \u4e0d\u8db3 \uff0c \u6b64\u65f6 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 CARLA \u7684 LargeMap \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 5 \u3001 CARLA \u600e\u4e48 \u5bfc\u5165 DIY \u8f66\u8f86 \uff1f \u7b54 \uff1a \u5b98\u65b9 \u6587\u6863 \uff1a Add a new vehicle \u3002 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u9700\u8981 \u7ed9 \u8f66\u8f86 \u5236\u4f5c \u4e00\u4e2a \u7528\u4e8e RayCast \u7684 Mesh \uff0c \u4e0d\u7136 \u4f1a \u5bfc\u81f4 \u5bfc\u5165 \u7684 \u8f66\u8f86 \u65e0\u6cd5 \u88ab Lidar \u626b\u63cf \u5230 \u3002 6 \u3001 \u600e\u4e48 \u52a0 \u4e00\u4e2a Semantic \u5206\u7c7b \uff1f \u7b54 \uff1a \u5b98\u65b9 \u6587\u6863 \uff1a https : / / carla . readthedocs . io / en / latest / tuto _ D _ create _ semantic _ tags / # create - semantic - tags 7 \u3001 CARLA \u80fd \u4e0d\u80fd DIY HUD \u754c\u9762 \uff1f \uff08 \u6dfb\u52a0 \u4eea\u8868 \u8868\u76d8 \u4eea\u8868\u76d8 \u4fe1\u606f \uff09 \u7b54 \uff1a \u53ef\u4ee5 \u3002 \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 CARLA \u73b0\u5728 \u7684 HUD \u662f \u7528 \u4ee3\u7801 \u5b9e\u73b0 \u7684 \uff0c \u53eb Carla HUD , \u5728 CarlaGameMode \u84dd\u56fe \u7c7b \u91cc\u9762 \u53ef\u4ee5 \u770b\u5230 HUD \u9009\u9879 \u3002 PythonAPI \u53c2\u7167 Carla \u7684 \u7ed3\u6784 \u6784\u56fe \u7ed3\u6784\u56fe \uff0c CARLA \u4e2d PythonAPI \u7684 \u4f7f\u7528 \u76f8\u5bf9 \u76f4\u89c2 \uff0c \u4f46\u662f \u63d0\u4f9b \u7684 \u529f\u80fd \u5e76 \u4e0d \u5168\u9762 \u3002 \u5982\u679c \u5e0c\u671b \u5bf9 PythonAPI \u8fdb\u884c \u4fee\u6539 \u6216 \u6dfb\u52a0 \uff0c \u5219 \u9700\u8981 \u719f\u6089 PythonAPI / carla / soure / libcarla \u76ee\u5f55 \u4e0b \u7684 \u4ee3\u7801 \uff0c \u5e76\u4e14 \u4e86\u89e3 CARLA \u5e95\u5c42 \u901a\u4fe1 \u673a\u5236 \uff0c \u5373 PythonAPI \u5982\u4f55 \u4e0e Libcarla \u6a21\u5757 \u3001 CARLA \u540e\u7aef \u8fdb\u884c \u4ea4\u4e92 \uff0c \u4ece\u800c \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u60f3\u6cd5 \u6765 \u5b9e\u73b0 \u65b0 \u7684 \u529f\u80fd \u4ee5\u53ca \u5bf9\u5e94 \u7684 PythonAPI \u3002 CARLA \u672c\u8eab \u662f UE \u7684 \u63d2\u4ef6 \uff0c \u6240\u4ee5 \u5b66\u4f1a \u600e\u4e48 \u5f00\u53d1 UE \u63d2\u4ef6 \uff0c \u5c31 \u80fd \u5f88 \u597d \u7684 \u4e86\u89e3 CARLA \u3002 \u5f53\u7136 CARLA \u4e5f \u4e0d \u5b8c\u5168 \u662f UE \u9879\u76ee \uff0c \u56e0\u4e3a Libcarla \u662f \u7eaf C++ \u9879\u76ee \u3002 \u7136\u540e \u901a\u8fc7 boost : : python \u7c7b \uff0c \u628a C++ \u7c7b \u8f6c\u6210 python \u80fd \u8bbf\u95ee \u7684 \u7c7b \uff0c \u8fd9 \u4e5f \u662f \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 print carla \u7684 python \u53d8\u91cf \u65f6 \uff0c \u603b\u662f \u6253\u5370 \u4e00\u4e2a \u6307\u9488 \u5730\u5740 \u7684 \u539f\u56e0 \u3002 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 1 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u4e0d \u53d7 \u63a7\u5236 \u7684 \u649e \uff1f \u7b54 \uff1a \u5927 \u6982\u7387 \u662f Traffic Manager \u7684 \u540c\u6b65 \u548c \u5f02\u6b65 \u8bbe\u7f6e \u7684 \u95ee\u9898 \uff0c \u5f53\u7136 \u4e5f \u6709 \u6027\u80fd \u95ee\u9898 \u3002 \u8be6\u60c5 \u8be6\u60c5\u8bf7 \u770b \u5b98\u65b9 \u6587\u6863 \u3002 2 \u3001 Ackermann Control \u548c Physics Control \u6709 \u4ec0\u4e48 \u533a\u522b \uff1f \u7b54 \uff1a Ackermann Control \u91cc\u9762 \u6709 \u4e24\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5206\u522b \u662f \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u53ef\u4ee5 \u5206\u522b \u8bbe\u7f6e PID \u7684 kp \uff0c ki \uff0c kd \u53c2\u6570 \u3002 Physics Control \u662f \u6839\u636e \u5239\u8f66 \u3001 \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u6765 \u76f4\u63a5 \u63a7\u5236 \u8f66\u8f86 \u3002 3 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5982\u4f55 \u63a7\u5236 \uff1f \u7b54 \uff1a PythonAPI \u4e2d\u6709 \u63a7\u5236 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u63a5\u53e3 \uff1a python carla . TrafficLight \u53ef\u4ee5 \u901a\u8fc7 \u5b83 \u8c03\u6574 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u989c\u8272 \u3001 \u63a7\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u95f4 \u4ee5\u53ca \u5f00\u5173 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002","title":"Co simulation"},{"location":"faq/co-simulation/#python-api","text":"","title":"\u8054\u5408 \u4eff\u771f \u3001 Python API \u3001 \u4ea4\u901a\u6d41"},{"location":"faq/co-simulation/#diy","text":"1 \u3001 CARLA \u548c Sumo \u80fd\u5426 \u8054\u5408 \u4eff\u771f \uff1f \u7b54 \uff1a \u53ef\u4ee5 \uff0c \u53c2\u8003 \u5b98\u65b9 \u6587\u6863 \u3002 \u6839\u636e \u5b9e\u8df5 \u7ecf\u9a8c \u5b9e\u8df5\u7ecf\u9a8c \uff1a Sumo \u8ba1\u7b97 \u592a\u6162 \uff0c \u5927 \u6982\u7387 \u4f1a \u5bfc\u81f4 CARLA \u5e27 \u7387 \u4e0d\u53ca \u9884\u671f \u3002 2 \u3001 CARLA \u548c \u5176\u4ed6 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \uff1f \u7b54 \uff1a \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \u7684 \u6574\u4f53 \u6d41\u7a0b \uff1a CARLA \u8f93\u51fa \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u64cd\u63a7 \uff08 \u5239\u8f66 \u3001 \u6cb9\u95e8 \u3001 \u79bb\u5408 \u3001 \u6863\u4f4d \u3001 \u8f6c\u5411 \uff09 \u5230 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \uff1b \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u89e3\u7b97 \u8f66\u8f86 \u7684 \u4f4d\u59ff \u4fe1\u606f \uff08 Position \u3001 Rotation \uff09 \u5e76\u4e14 \u8f93\u51fa \u5230 CARLA \uff1b CARLA \u6839\u636e \u63a5\u6536 \u5230 \u7684 \u4f4d\u59ff \u4fe1\u606f \u8fdb\u884c \u66f4\u65b0 \u3002 \u53ea\u8981 \u80fd \u505a\u5230 \u4e0a\u8ff0 \u4e8b\u9879 \uff0c \u5c31 \u53ef\u4ee5 \u8fdb\u884c \u8054\u5408 \u4eff\u771f \u3002 3 \u3001 CARLA \u600e\u4e48 \u6267\u884c \u573a\u666f \uff1f \u7b54 \uff1a CARLA \u5b98\u65b9 \u6709 \u573a\u666f \u6267\u884c \u6267\u884c\u5668 \uff1a Scenario Runner \u3002 \u53c2\u8003 \u5b98\u65b9 \u6587\u6863 \u3002 4 \u3001 CARLA \u600e\u4e48 \u5bfc\u5165 DIY \u5730\u56fe \uff1f \u7b54 \uff1a \u53c2\u8003 \u5b98\u65b9 \u6587\u6863 \u3002 \u53ef\u4ee5 \u4f7f\u7528 RoadRunner \u5236\u4f5c \u5730\u56fe \uff0c \u5bfc\u51fa fbx \u548c xodr \u6587\u4ef6 \u3002 \u5982\u679c \u662f \u7f8e\u672f \u5236\u4f5c \u7684 UE \u5173\u5361 \uff0c \u9002\u914d \u5408\u9002 \u7684 xodr \u4e5f \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u8fd9 \u6d89\u53ca \u5230 \u90e8\u5206 Carla \u529f\u80fd \u662f\u5426 \u53ef\u4ee5 \u6b63\u5e38 \u4f7f\u7528 \u3002 \u5f53\u7136 \uff0c \u5730\u56fe \u592a\u5927 \u4e86 \u4f1a \u6709 \u6027\u80fd \u95ee\u9898 \uff0c \u6bd4\u5982 GPU \u663e\u5b58 \u4e0d\u8db3 \uff0c \u6b64\u65f6 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 CARLA \u7684 LargeMap \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 5 \u3001 CARLA \u600e\u4e48 \u5bfc\u5165 DIY \u8f66\u8f86 \uff1f \u7b54 \uff1a \u5b98\u65b9 \u6587\u6863 \uff1a Add a new vehicle \u3002 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u9700\u8981 \u7ed9 \u8f66\u8f86 \u5236\u4f5c \u4e00\u4e2a \u7528\u4e8e RayCast \u7684 Mesh \uff0c \u4e0d\u7136 \u4f1a \u5bfc\u81f4 \u5bfc\u5165 \u7684 \u8f66\u8f86 \u65e0\u6cd5 \u88ab Lidar \u626b\u63cf \u5230 \u3002 6 \u3001 \u600e\u4e48 \u52a0 \u4e00\u4e2a Semantic \u5206\u7c7b \uff1f \u7b54 \uff1a \u5b98\u65b9 \u6587\u6863 \uff1a https : / / carla . readthedocs . io / en / latest / tuto _ D _ create _ semantic _ tags / # create - semantic - tags 7 \u3001 CARLA \u80fd \u4e0d\u80fd DIY HUD \u754c\u9762 \uff1f \uff08 \u6dfb\u52a0 \u4eea\u8868 \u8868\u76d8 \u4eea\u8868\u76d8 \u4fe1\u606f \uff09 \u7b54 \uff1a \u53ef\u4ee5 \u3002 \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 CARLA \u73b0\u5728 \u7684 HUD \u662f \u7528 \u4ee3\u7801 \u5b9e\u73b0 \u7684 \uff0c \u53eb Carla HUD , \u5728 CarlaGameMode \u84dd\u56fe \u7c7b \u91cc\u9762 \u53ef\u4ee5 \u770b\u5230 HUD \u9009\u9879 \u3002","title":"\u8054\u5408 \u4eff\u771f & amp ; DIY"},{"location":"faq/co-simulation/#pythonapi","text":"\u53c2\u7167 Carla \u7684 \u7ed3\u6784 \u6784\u56fe \u7ed3\u6784\u56fe \uff0c CARLA \u4e2d PythonAPI \u7684 \u4f7f\u7528 \u76f8\u5bf9 \u76f4\u89c2 \uff0c \u4f46\u662f \u63d0\u4f9b \u7684 \u529f\u80fd \u5e76 \u4e0d \u5168\u9762 \u3002 \u5982\u679c \u5e0c\u671b \u5bf9 PythonAPI \u8fdb\u884c \u4fee\u6539 \u6216 \u6dfb\u52a0 \uff0c \u5219 \u9700\u8981 \u719f\u6089 PythonAPI / carla / soure / libcarla \u76ee\u5f55 \u4e0b \u7684 \u4ee3\u7801 \uff0c \u5e76\u4e14 \u4e86\u89e3 CARLA \u5e95\u5c42 \u901a\u4fe1 \u673a\u5236 \uff0c \u5373 PythonAPI \u5982\u4f55 \u4e0e Libcarla \u6a21\u5757 \u3001 CARLA \u540e\u7aef \u8fdb\u884c \u4ea4\u4e92 \uff0c \u4ece\u800c \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u60f3\u6cd5 \u6765 \u5b9e\u73b0 \u65b0 \u7684 \u529f\u80fd \u4ee5\u53ca \u5bf9\u5e94 \u7684 PythonAPI \u3002 CARLA \u672c\u8eab \u662f UE \u7684 \u63d2\u4ef6 \uff0c \u6240\u4ee5 \u5b66\u4f1a \u600e\u4e48 \u5f00\u53d1 UE \u63d2\u4ef6 \uff0c \u5c31 \u80fd \u5f88 \u597d \u7684 \u4e86\u89e3 CARLA \u3002 \u5f53\u7136 CARLA \u4e5f \u4e0d \u5b8c\u5168 \u662f UE \u9879\u76ee \uff0c \u56e0\u4e3a Libcarla \u662f \u7eaf C++ \u9879\u76ee \u3002 \u7136\u540e \u901a\u8fc7 boost : : python \u7c7b \uff0c \u628a C++ \u7c7b \u8f6c\u6210 python \u80fd \u8bbf\u95ee \u7684 \u7c7b \uff0c \u8fd9 \u4e5f \u662f \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 print carla \u7684 python \u53d8\u91cf \u65f6 \uff0c \u603b\u662f \u6253\u5370 \u4e00\u4e2a \u6307\u9488 \u5730\u5740 \u7684 \u539f\u56e0 \u3002","title":"PythonAPI"},{"location":"faq/co-simulation/#_1","text":"1 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u4e0d \u53d7 \u63a7\u5236 \u7684 \u649e \uff1f \u7b54 \uff1a \u5927 \u6982\u7387 \u662f Traffic Manager \u7684 \u540c\u6b65 \u548c \u5f02\u6b65 \u8bbe\u7f6e \u7684 \u95ee\u9898 \uff0c \u5f53\u7136 \u4e5f \u6709 \u6027\u80fd \u95ee\u9898 \u3002 \u8be6\u60c5 \u8be6\u60c5\u8bf7 \u770b \u5b98\u65b9 \u6587\u6863 \u3002 2 \u3001 Ackermann Control \u548c Physics Control \u6709 \u4ec0\u4e48 \u533a\u522b \uff1f \u7b54 \uff1a Ackermann Control \u91cc\u9762 \u6709 \u4e24\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5206\u522b \u662f \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u53ef\u4ee5 \u5206\u522b \u8bbe\u7f6e PID \u7684 kp \uff0c ki \uff0c kd \u53c2\u6570 \u3002 Physics Control \u662f \u6839\u636e \u5239\u8f66 \u3001 \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u6765 \u76f4\u63a5 \u63a7\u5236 \u8f66\u8f86 \u3002 3 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5982\u4f55 \u63a7\u5236 \uff1f \u7b54 \uff1a PythonAPI \u4e2d\u6709 \u63a7\u5236 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u63a5\u53e3 \uff1a python carla . TrafficLight \u53ef\u4ee5 \u901a\u8fc7 \u5b83 \u8c03\u6574 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u989c\u8272 \u3001 \u63a7\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u65f6\u95f4 \u4ee5\u53ca \u5f00\u5173 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002","title":"\u4ea4\u901a\u6d41"},{"location":"faq/dynamics/","text":"\u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 1 \u3001 Carla \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5230\u5e95 \u53ef\u4e0d \u4e0d\u53ef \u53ef\u4ee5 \u53ef\u4e0d\u53ef\u4ee5 \u7528 \uff1f \u7b54 \uff1a \u9700\u8981 \u533a\u5206 \u573a\u666f \uff0c \u5982\u679c \u505a \u89c4\u63a7 \u6d4b\u8bd5 \uff0c \u53ef\u80fd \u9700\u8981 \u66f4\u52a0 \u590d\u6742 \u548c \u7cbe\u786e \u7684 \u5546\u4e1a \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8f6f\u4ef6 \uff0c \u4f8b\u5982 Carsim \u3001 CarMaker \u3002 \u5982\u679c \u662f \u5408\u6210 \u6570\u636e \u3001 \u5f3a\u5316 \u5b66\u4e60 \u7b49 \u4f7f\u7528 \u573a\u666f \uff0c \u7528 Carla \u9ed8\u8ba4 \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 PhysX \u5373\u53ef \u3002 2 \u3001 Carla \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u662f \u4ec0\u4e48 \uff1f PhysX3.4 \u5f00\u6e90 \u9879\u76ee \u5730\u5740 \u3002 \u7531\u4e8e UE5 \u5f03\u7528 \u4e86 PhysX \uff0c \u6240\u4ee5 Carla \u5347\u7ea7 UE5 \u4e4b\u540e \uff0c \u4f1a\u7528 Chaos \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 3 \u3001 Carla \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6709 \u7535\u8f66 \u6a21\u578b \u5417 \uff1f \u7b54 \uff1a PhysX3.4 \u548c PhysX5 \u90fd \u6ca1\u6709 \u7535\u8f66 \u6a21\u578b \uff0c \u4e8c\u8005 \u90fd \u662f \u57fa\u4e8e \u5f15\u64ce + \u79bb\u5408 \u79bb\u5408\u5668 \u3002 Carla \u91cc \u7684 Tesla Model 3 \u901a\u8fc7 \u4e00\u4e2a \u5355\u72ec \u7684 \u6863\u4f4d \u6a21\u62df \u7535\u8f66 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \uff0c \u4f46 \u4e5f \u6709 \u7a7a\u6863 \uff08 \u65e0\u6cd5 \u53bb\u6389 \uff09 \u3002 4 \u3001 Carla \u600e\u4e48 \u548c \u5176\u4ed6 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \uff1f \u7b54 \uff1a Carla \u5b98\u65b9 \u5df2\u7ecf \u5b9e\u73b0 \u4e86 CarSim \u548c Chrono \u7684 \u8054\u5408 \u4eff\u771f \uff0c \u524d\u8005 \u6536\u8d39 \u800c \u540e\u8005 \u5f00\u6e90 \u3002 5 \u3001 Carla \u80fd \u4e0d\u80fd \u548c Simulink \u642d \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \uff1f \u7b54 \uff1a \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \u7684 \u6574\u4f53 \u6d41\u7a0b \uff1a 1 . Carla \u8f93\u51fa \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u64cd\u63a7 \uff08 \u5239\u8f66 \u3001 \u6cb9\u95e8 \u3001 \u79bb\u5408 \u3001 \u6863\u4f4d \u3001 \u8f6c\u5411 \uff09 \u5230 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \uff1b 2 . \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u89e3\u7b97 \u8f66\u8f86 \u7684 \u4f4d\u59ff \u4fe1\u606f \uff08 Position \u3001 Rotation \uff09 \u5e76\u4e14 \u8f93\u51fa \u5230 Carla \uff1b 3 . Carla \u6839\u636e \u63a5\u6536 \u5230 \u7684 \u4f4d\u59ff \u4fe1\u606f \u8fdb\u884c \u66f4\u65b0 \u3002 \u53ea\u8981 \u80fd \u505a\u5230 \u4e0a\u8ff0 \u4e8b\u9879 \uff0c \u5c31 \u53ef\u4ee5 \u8fdb\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5982\u679c \u8054\u5408 \u4eff\u771f \u7684 \u6548\u679c \u4e0d\u597d \uff0c \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u6ca1\u6709 \u5bf9\u9f50 \u4eff\u771f \u65f6\u6b65 \u3002 Carla \u548c Simulink \u901a\u5e38 \u4e0d \u5728 \u4e00\u4e2a \u65f6\u6b65 \u548c \u9891\u7387 \u4e0b \u8fd0\u884c \uff0c \u56e0\u6b64 \u9700\u8981 \u5bf9\u9f50 \u65f6\u6b65 \u3002 6 \u3001 Carla \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u80fd \u4e0d\u80fd \u8c03\u8bd5 \uff1f \u7b54 \uff1a \u53ef\u4ee5 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a python \u63a5\u53e3 \uff0c \u53ef\u4ee5 \u5728 HUD \u4e0a\u753b \u51fa \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u53c2\u6570 \u4fe1\u606f \u53c2\u6570\u4fe1\u606f \uff1a carla . Vehicle . show _ debug _ telemetry ( ) 7 \u3001 Carla \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6709 ABS \u3001 \u540e\u8f6e \u8f6c\u5411 \u7b49 \u529f\u80fd \u5417 \uff1f \u7b54 \uff1a \u90fd \u6ca1\u6709 \u3002 \u76ee\u524d \u5df2\u77e5 \u7684 \u6709 \uff1a Anti - Roll \uff0c \u9632\u4fa7 \u503e \u529f\u80fd \u3002 \u5982\u679c \u9700\u8981 ABS \u3001 \u540e\u8f6e \u8f6c\u5411 \u7b49 \u529f\u80fd \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u548c \u5e26\u6709 \u8fd9\u4e9b \u529f\u80fd \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \u6765 \u5b9e\u73b0 \u3002 8 \u3001 Carla \u80fd \u4e0d\u80fd \u6839\u636e \u5929\u6c14 \u3001 \u8def\u9762 \u6539\u53d8 \u6469\u64e6 \u6469\u64e6\u529b \u7cfb\u6570 \uff1f \u7b54 \uff1a \u53ef\u4ee5 \u3002 \u6709 \u4e24\u79cd \u65b9\u5f0f \uff1a 1 . \u8bbe\u7f6e \u7269\u7406 \u6750\u8d28 \uff1b 2 . \u4f7f\u7528 FrictionTrigger \uff08 \u533a\u57df \u5185 \u6539\u53d8 \u8f6e\u80ce \u7684 tire friction \u53c2\u6570 \uff09 \u3002 9 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 Carla \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u603b\u662f \u632f\u8361 \uff1f \u7b54 \uff1a \u56e0\u4e3a \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8f93\u51fa \u7684 \u662f \u901f\u5ea6 \uff0c \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 Carla \u91cc \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u662f \u901a\u8fc7 \u524d\u540e \u4e24\u5e27 \u7684 \u901f\u5ea6 \u5dee \u9664\u4ee5 \u6b65\u957f \u3002 \u4eff\u771f \u9891\u7387 \u8d8a\u9ad8 \uff0c \u6b65\u957f \u8d8a\u5c0f \uff0c \u8d8a\u4f1a \u653e\u5927 \u632f\u8361 \u3002 Carla \u5df2\u7ecf \u5b9e\u73b0 \u4e86 \u9488\u5bf9 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u901a\u8fc7 \u5e73\u5747 \u52a0\u6743 \u7684 \u65b9\u5f0f \u5e73\u6ed1 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u6b64\u5916 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 \u5404\u79cd \u6ee4\u6ce2 \u624b\u6bb5 \u89e3\u51b3 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u632f\u8361 \u95ee\u9898 \u3002 10 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u6ca1 \u7ed9 \u65b9\u5411 \uff0c \u8f66 \u5374 \u5f00 \u6b6a \u4e86 \uff1f \u7b54 \uff1a \u56e0\u4e3a \u4f1a \u6709 \u4fa7\u5411 \u6ed1\u79fb \u3002 \u53ef\u80fd \u662f \u8f6e\u80ce \u4fa7\u5411 \u521a\u5ea6 \u592a \u5927 \u3001 \u8def\u9762 \u4e0d \u5e73\u6574 \uff0c \u6216\u8005 \u8def \u672c\u8eab \u662f \u503e\u659c \u7684 \u3002","title":"Dynamics"},{"location":"faq/dynamics/#_1","text":"1 \u3001 Carla \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5230\u5e95 \u53ef\u4e0d \u4e0d\u53ef \u53ef\u4ee5 \u53ef\u4e0d\u53ef\u4ee5 \u7528 \uff1f \u7b54 \uff1a \u9700\u8981 \u533a\u5206 \u573a\u666f \uff0c \u5982\u679c \u505a \u89c4\u63a7 \u6d4b\u8bd5 \uff0c \u53ef\u80fd \u9700\u8981 \u66f4\u52a0 \u590d\u6742 \u548c \u7cbe\u786e \u7684 \u5546\u4e1a \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8f6f\u4ef6 \uff0c \u4f8b\u5982 Carsim \u3001 CarMaker \u3002 \u5982\u679c \u662f \u5408\u6210 \u6570\u636e \u3001 \u5f3a\u5316 \u5b66\u4e60 \u7b49 \u4f7f\u7528 \u573a\u666f \uff0c \u7528 Carla \u9ed8\u8ba4 \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 PhysX \u5373\u53ef \u3002 2 \u3001 Carla \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u662f \u4ec0\u4e48 \uff1f PhysX3.4 \u5f00\u6e90 \u9879\u76ee \u5730\u5740 \u3002 \u7531\u4e8e UE5 \u5f03\u7528 \u4e86 PhysX \uff0c \u6240\u4ee5 Carla \u5347\u7ea7 UE5 \u4e4b\u540e \uff0c \u4f1a\u7528 Chaos \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 3 \u3001 Carla \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6709 \u7535\u8f66 \u6a21\u578b \u5417 \uff1f \u7b54 \uff1a PhysX3.4 \u548c PhysX5 \u90fd \u6ca1\u6709 \u7535\u8f66 \u6a21\u578b \uff0c \u4e8c\u8005 \u90fd \u662f \u57fa\u4e8e \u5f15\u64ce + \u79bb\u5408 \u79bb\u5408\u5668 \u3002 Carla \u91cc \u7684 Tesla Model 3 \u901a\u8fc7 \u4e00\u4e2a \u5355\u72ec \u7684 \u6863\u4f4d \u6a21\u62df \u7535\u8f66 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \uff0c \u4f46 \u4e5f \u6709 \u7a7a\u6863 \uff08 \u65e0\u6cd5 \u53bb\u6389 \uff09 \u3002 4 \u3001 Carla \u600e\u4e48 \u548c \u5176\u4ed6 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \uff1f \u7b54 \uff1a Carla \u5b98\u65b9 \u5df2\u7ecf \u5b9e\u73b0 \u4e86 CarSim \u548c Chrono \u7684 \u8054\u5408 \u4eff\u771f \uff0c \u524d\u8005 \u6536\u8d39 \u800c \u540e\u8005 \u5f00\u6e90 \u3002 5 \u3001 Carla \u80fd \u4e0d\u80fd \u548c Simulink \u642d \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \uff1f \u7b54 \uff1a \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \u7684 \u6574\u4f53 \u6d41\u7a0b \uff1a 1 . Carla \u8f93\u51fa \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u64cd\u63a7 \uff08 \u5239\u8f66 \u3001 \u6cb9\u95e8 \u3001 \u79bb\u5408 \u3001 \u6863\u4f4d \u3001 \u8f6c\u5411 \uff09 \u5230 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \uff1b 2 . \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u89e3\u7b97 \u8f66\u8f86 \u7684 \u4f4d\u59ff \u4fe1\u606f \uff08 Position \u3001 Rotation \uff09 \u5e76\u4e14 \u8f93\u51fa \u5230 Carla \uff1b 3 . Carla \u6839\u636e \u63a5\u6536 \u5230 \u7684 \u4f4d\u59ff \u4fe1\u606f \u8fdb\u884c \u66f4\u65b0 \u3002 \u53ea\u8981 \u80fd \u505a\u5230 \u4e0a\u8ff0 \u4e8b\u9879 \uff0c \u5c31 \u53ef\u4ee5 \u8fdb\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5982\u679c \u8054\u5408 \u4eff\u771f \u7684 \u6548\u679c \u4e0d\u597d \uff0c \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u6ca1\u6709 \u5bf9\u9f50 \u4eff\u771f \u65f6\u6b65 \u3002 Carla \u548c Simulink \u901a\u5e38 \u4e0d \u5728 \u4e00\u4e2a \u65f6\u6b65 \u548c \u9891\u7387 \u4e0b \u8fd0\u884c \uff0c \u56e0\u6b64 \u9700\u8981 \u5bf9\u9f50 \u65f6\u6b65 \u3002 6 \u3001 Carla \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u80fd \u4e0d\u80fd \u8c03\u8bd5 \uff1f \u7b54 \uff1a \u53ef\u4ee5 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a python \u63a5\u53e3 \uff0c \u53ef\u4ee5 \u5728 HUD \u4e0a\u753b \u51fa \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u53c2\u6570 \u4fe1\u606f \u53c2\u6570\u4fe1\u606f \uff1a carla . Vehicle . show _ debug _ telemetry ( ) 7 \u3001 Carla \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6709 ABS \u3001 \u540e\u8f6e \u8f6c\u5411 \u7b49 \u529f\u80fd \u5417 \uff1f \u7b54 \uff1a \u90fd \u6ca1\u6709 \u3002 \u76ee\u524d \u5df2\u77e5 \u7684 \u6709 \uff1a Anti - Roll \uff0c \u9632\u4fa7 \u503e \u529f\u80fd \u3002 \u5982\u679c \u9700\u8981 ABS \u3001 \u540e\u8f6e \u8f6c\u5411 \u7b49 \u529f\u80fd \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u548c \u5e26\u6709 \u8fd9\u4e9b \u529f\u80fd \u7684 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8054\u5408 \u4eff\u771f \u6765 \u5b9e\u73b0 \u3002 8 \u3001 Carla \u80fd \u4e0d\u80fd \u6839\u636e \u5929\u6c14 \u3001 \u8def\u9762 \u6539\u53d8 \u6469\u64e6 \u6469\u64e6\u529b \u7cfb\u6570 \uff1f \u7b54 \uff1a \u53ef\u4ee5 \u3002 \u6709 \u4e24\u79cd \u65b9\u5f0f \uff1a 1 . \u8bbe\u7f6e \u7269\u7406 \u6750\u8d28 \uff1b 2 . \u4f7f\u7528 FrictionTrigger \uff08 \u533a\u57df \u5185 \u6539\u53d8 \u8f6e\u80ce \u7684 tire friction \u53c2\u6570 \uff09 \u3002 9 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 Carla \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u603b\u662f \u632f\u8361 \uff1f \u7b54 \uff1a \u56e0\u4e3a \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8f93\u51fa \u7684 \u662f \u901f\u5ea6 \uff0c \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 Carla \u91cc \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u662f \u901a\u8fc7 \u524d\u540e \u4e24\u5e27 \u7684 \u901f\u5ea6 \u5dee \u9664\u4ee5 \u6b65\u957f \u3002 \u4eff\u771f \u9891\u7387 \u8d8a\u9ad8 \uff0c \u6b65\u957f \u8d8a\u5c0f \uff0c \u8d8a\u4f1a \u653e\u5927 \u632f\u8361 \u3002 Carla \u5df2\u7ecf \u5b9e\u73b0 \u4e86 \u9488\u5bf9 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u901a\u8fc7 \u5e73\u5747 \u52a0\u6743 \u7684 \u65b9\u5f0f \u5e73\u6ed1 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u6b64\u5916 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 \u5404\u79cd \u6ee4\u6ce2 \u624b\u6bb5 \u89e3\u51b3 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u632f\u8361 \u95ee\u9898 \u3002 10 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u6ca1 \u7ed9 \u65b9\u5411 \uff0c \u8f66 \u5374 \u5f00 \u6b6a \u4e86 \uff1f \u7b54 \uff1a \u56e0\u4e3a \u4f1a \u6709 \u4fa7\u5411 \u6ed1\u79fb \u3002 \u53ef\u80fd \u662f \u8f6e\u80ce \u4fa7\u5411 \u521a\u5ea6 \u592a \u5927 \u3001 \u8def\u9762 \u4e0d \u5e73\u6574 \uff0c \u6216\u8005 \u8def \u672c\u8eab \u662f \u503e\u659c \u7684 \u3002","title":"\u52a8\u529b\u5b66"},{"location":"faq/radar/","text":"\u96f7\u8fbe Radar / \u96f7\u8fbe 1 \u3001 CARLA \u81ea\u5e26 \u96f7\u8fbe \u53d7 \u5929\u6c14 \u5f71\u54cd \u5417 \uff1f \u7b54 \uff1a \u7b54 \uff1a \u4e0d \u53d7 \u5f71\u54cd \uff0c Lidar \u540c\u7406 \u3002 \u7269\u7406 \u8fc7\u7a0b \u4eff\u771f \u4e0d\u662f CARLA \u5728\u610f \u7684 \u4e1c\u897f \u3002 \u6709 \u80fd\u529b \u7684 \u540c\u5b66 \u53ef\u4ee5 \u81ea\u5df1 \u5f00\u53d1 \u3002 2 \u3001 CARLA \u6709 \u7406\u60f3 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5417 \uff1f \u7b54 \uff1a \u6ca1\u6709 \uff0c \u6709 \u80fd\u529b \u7684 \u540c\u5b66 \u53ef\u4ee5 \u81ea\u5df1 \u5f00\u53d1 \u3002 \u5e95\u5c42 \u539f\u7406 \u4e0e Radar \u7c7b\u4f3c \u3002 3 \u3001 CARLA \u6709 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u5417 \uff1f \u7b54 \uff1a \u6ca1\u6709 \uff0c \u6709 \u80fd\u529b \u7684 \u540c\u5b66 \u53ef\u4ee5 \u81ea\u5df1 \u5f00\u53d1 \u3002 \u7406\u60f3 \u6a21\u578b \u53ef\u4ee5 \u53c2\u8003 Lidar \u3002 \u8fd9\u4e9b \u5e95\u5c42 \u90fd \u662f \u57fa\u4e8e RayCast \u505a \u7684 \u3002 \u5f53\u7136 \u4e5f \u770b\u5230 \u8fc7 \u4e00\u4e2a \u901a\u8fc7 \u56fe\u50cf \u53bb \u751f\u6210 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u8f93\u51fa \u7684 \u65b9\u6cd5 \uff0c \u5fd8 \u4e86 \u54ea\u7bc7 \u8bba\u6587 \u4e86 \u3002 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u662f \u4f20\u7edf \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u7684 \u5347\u7ea7 \u5347\u7ea7\u7248 \uff0c 4D \u6307 \u7684 \u662f \u901f\u5ea6 \u3001 \u8ddd\u79bb \u3001 \u6c34\u5e73 \u89d2\u5ea6 \u3001 \u5782\u76f4 \u9ad8\u5ea6 \u56db\u4e2a \u7ef4\u5ea6 \u3002 \u76f8\u6bd4 \u4f20\u7edf 3D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \uff0c 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u589e\u52a0 \u4e86 \u201c \u9ad8\u5ea6 \u201d \u7684 \u63a2\u6d4b \uff0c \u5c06 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ef4\u5ea6 \u6574\u5408 \u5230 \u4f20\u7edf \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u4e2d \uff0c \u8fd9 \u4f7f\u5f97 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u7684 \u7ef4\u5ea6 \u66f4\u52a0 \u4e30\u5bcc \uff0c \u53ef\u4ee5 \u6d4b\u91cf \u4fef\u4ef0 \u89d2\u5ea6 \uff0c \u4e14 \u89d2\u5ea6 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u53ef\u4ee5 \u8fbe\u5230 1 \u5ea6 \u5de6\u53f3 \u3002 \u800c\u4e14 \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u63a2\u6d4b \u96f7\u8fbe\u63a2\u6d4b \u8ddd\u79bb \u66f4\u957f \uff0c \u6700\u8fdc \u63a2\u6d4b \u8ddd\u79bb \u53ef\u8fbe 350 \u591a\u7c73 \u3002 Lidar / \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe 1 \u3001 Lidar \u6709 \u8fd0\u52a8 \u7578\u53d8 \u5417 \uff1f \u7b54 \uff1a \u6709 \u4e00\u70b9 \u70b9\u70b9 \u4e00\u70b9\u70b9 \u3002 \u56e0\u4e3a \u5f15\u64ce \u662f \u79bb\u6563 \u65f6\u95f4 \uff0c \u4f46 \u79bb\u6563 \u7684 \u7c92\u5ea6 \u6ca1\u6709 \u8fbe\u5230 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf \u4e00\u5217 \uff08 128 \u7ebf\u626b \u4e00\u6b21 \u6216 \u4e24\u6b21 \uff09 \u7684 \u65f6\u95f4 \uff0c \u4f46 CARLA Lidar \u7684 \u5b9e\u73b0 \u903b\u8f91 \u662f \u6839\u636e delta time \uff08 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u662f fixed _ delta _ time \uff09 \u53c2\u6570 \u3002 \u6240\u4ee5 CARLA Lidar \u8ba1\u7b97 \u4e00\u6b21 \uff0c \u4e0d \u61c2 \u53c2\u6570 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5927 \u6982\u7387 \u4e5f \u4e0d\u662f \u5b8c\u6574 \u7684 \u4e00\u5e27 \uff08 \u8f93\u51fa \u53ea\u6709 \u534a\u4e2a \u5708 \u7684 \u60c5\u51b5 \uff09 \uff0c \u4ece \u8fd9\u4e2a \u89d2\u5ea6 \u89d2\u5ea6\u770b \uff0c \u51e0\u5e27 \u62fc\u6210 \u5b8c\u6574 \u7684 \u4e00\u5e27 \uff0c \u51e0\u5e27 \u662f \u5728 \u4e0d\u540c \u4eff\u771f \u65f6\u95f4 \u4e0b \u751f\u6210 \u7684 \uff0c \u6709 \u7c92\u5ea6 \u7c97\u7c92\u5ea6 \u7684 \u8fd0\u52a8 \u7578\u53d8 \u3002 \u7406\u8bba \u4e0a \uff0c \u53ea\u8981 \u7c92\u5ea6 \u591f \u5c0f \uff08 1ms \uff09 \uff0c \u62fc\u51fa \u51fa\u6765 \u62fc\u51fa\u6765 \u7684 \u70b9\u4e91 \u5c31\u662f \u6709 \u8fd0\u52a8 \u7578\u53d8 \u7684 \u3002 \u5f53\u7136 \uff0c \u8fd0\u884c \u7684 \u4e5f \u4f1a \u5f88\u6162 \u3002 2 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u6211 \u7684 Lidar \u8f93\u51fa \u4e0d\u662f \u5b8c\u6574 \u7684 \u70b9\u4e91 \uff1f \u7b54 \uff1a \u5efa\u8bae \u4e86\u89e3 \u4e09\u4e2a \u53c2\u6570 \u6982\u5ff5 \uff1a world tick ( fixed _ delta _ time ) , sensor tick , rotation frequence \u3002 \u5728 CARLA \u9ed8\u8ba4 \u7684 \u5b9e\u73b0 \u903b\u8f91 \u4e0b \uff0c \u4e00\u4e2a \u4eff\u771f \u79d2 \u7684 \u70b9\u4e91 \u603b\u6570 \u5e94\u8be5 \u5728 [ rotation frequence * points _ per _ second * 80% ] \u5de6\u53f3 \uff0c \u6839\u636e \u626b\u63cf \u7684 \u573a\u5730 \u662f\u5426 \u5f00\u9614 \u51b3\u5b9a \u8fd4\u56de \u7684 \u70b9\u4e91\u6570 \u3002 \u56e0\u4e3a \u6253 \u51fa\u53bb \u7684 \u6fc0\u5149 \u6ca1 \u51fb\u4e2d \u7269\u4f53 \u5c31 \u4e0d\u4f1a \u6709\u70b9 \u4e91 \uff0c \u6240\u4ee5 \u70b9\u4e91\u6570 \u4e00\u5b9a \u662f \u7565 \u5c11 \u7684 \u3002 3 \u3001 Lidar \u53d7 \u5929\u6c14 \u5f71\u54cd \u5417 \uff1f \u7b54 \uff1a \u4e0d \u53d7 \u5929\u6c14 \u5f71\u54cd \u3002 \u4e5f \u4e0d\u53d7 \u7c92\u5b50 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7c92\u5b50\u7cfb\u7edf \u5f71\u54cd \uff08 \u4e0d\u7ba1 \u4f60 \u662f \u8001 \u7684 \u7c92\u5b50 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7c92\u5b50\u7cfb\u7edf \u8fd8\u662f Niagara \u7c92\u5b50 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7c92\u5b50\u7cfb\u7edf \uff09 \u3002 4 \u3001 \u600e\u4e48 \u6a21\u62df Mems \u7b49 \u975e \u673a\u68b0 \u673a\u68b0\u5f0f Lidar \uff1f \u7b54 \uff1a \u6709 \u80fd\u529b \u7684 \u53ef\u4ee5 \u81ea\u5df1 \u8bbe\u8ba1 RayCast \u53d1\u5c04 \u65b9\u5f0f \u3002 \u6709 \u4e00\u7bc7 \u8bba\u6587 \u5b9e\u73b0 \u8fc7 \u3001 Github \u9879\u76ee \u5730\u5740 \u3002 5 \u3001 \u600e\u4e48 \u5b9e\u73b0 Lidar \u7684 \u591a\u6b21 \u53cd\u5c04 \uff1f \u7b54 \uff1a \u4e0a \u4e00\u4e2a \u95ee\u9898 \u7684 \u8bba\u6587 \u4e5f \u5b9e\u73b0 \u8fc7 \u3002 \u4f46 \u539f\u7406 \u662f \uff1a \u8ba1\u7b97 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u53d1\u5c04 \u7684 \u5f3a\u5ea6 \uff0c \u5982\u679c \u5927\u4e8e 50% \uff0c \u5c31 \u5728 \u51fb\u4e2d \u70b9\u5ef6 \u5165\u5c04 \u65b9\u5411 \u4e0e \u51fb\u4e2d \u70b9 \u6cd5\u7ebf \u7684 \u89d2\u5ea6 \u518d\u53d1 \u3002 \u7b2c\u4e8c \u4e8c\u6b21 \u7b2c\u4e8c\u6b21 \u53d1\u5c04 \u51fb\u4e2d \u7684 \u70b9 \u4e3a \u70b9\u4e91 \u7684 \u5750\u6807 \u3002 \u4e2a\u4eba \u7406\u89e3 \uff1a \u5047 \u3002 \u4e2a\u4eba \u611a\u89c1 \uff1a Lidar \u662f \u901a\u8fc7 \u76d8\u7801 \u89d2 \u548c TTF \u51b3\u5b9a \u70b9\u4e91 \u4f4d\u7f6e \u7684 \uff0c \u76d8\u7801 \u89d2 \u51b3\u5b9a \u70b9\u4e91 \u65b9\u5411 \uff0c TTF \uff08 time to fly \uff0c \u98de\u884c \u65f6\u95f4 \uff09 \u51b3\u5b9a \u8ddd\u79bb \u3002 \u770b \u4e86 \u77e5\u4e4e \u96ea\u5cad \u98de\u82b1 \u5728 \u300a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe lidar \u76ee\u524d \u7684 \u6280\u672f \u96be\u70b9 \u5728 \u54ea \uff0c \u5173\u952e \u6280\u672f \u5173\u952e\u6280\u672f \u90fd \u6709 \u54ea\u4e9b \uff1f \u300b \u4e0b \u7684 \u56de\u7b54 \uff0c \u6211 \u5927\u6982 \u77e5\u9053 \u9b3c\u5f71 \u548c \u81a8\u80c0 \u7684 \u539f\u56e0 \u3002 \u6240\u4ee5 \u591a\u6b21 \u53cd\u5c04 \u80fd \u751f\u6210 \u70b9\u4e91 \u6700 \u91cd\u8981 \u7684 \u4e00\u70b9 \u662f \uff1a \u591a\u6b21 \u8def\u5f84 \u53cd\u5c04 \u540e \uff0c \u6700\u7ec8 \u80fd \u88ab \u63a5\u6536 \u63a5\u6536\u5668 \u611f\u77e5 \u3002 \u5e76\u4e14 \u70b9\u4e91 \u7684 \u65b9\u5411 \u53ea \u53d7\u76d8 \u7801\u89d2 \u51b3\u5b9a \uff0c \u4e0d\u662f \u4e24\u6b21 \u53cd\u5c04 \u51fb\u4e2d \u7684 \u70b9 \u5c31\u662f \u6700\u7ec8 \u7684 \u70b9\u4e91 \u7684 \u4f4d\u7f6e \uff01 \uff08 \u5f53\u7136 \uff0c \u7406\u89e3 \u4e86 \u539f\u7406 \uff0c \u4e5f \u5c31 \u6709 \u53ef\u80fd \u53bb \u5b9e\u73b0 \u4e86 \uff0c \u6027\u80fd \u6d88\u8017 \u4f30\u8ba1 \u4e0d\u5c0f \uff09 6 \u3001 \u600e\u4e48 \u5b9e\u73b0 \u4e0d\u540c \u7269\u4f53 \u4e0d\u540c \u53cd\u5c04 \u53cd\u5c04\u7387 \uff1f \u7b54 \uff1a \u4e2a\u4eba \u4e86\u89e3 \u4e24\u79cd \u65b9\u6848 \uff1a 1 \uff09 \u3001 \u4e00\u79cd \u57fa\u4e8e CARLA \u7684 Tag \u7cfb\u7edf \uff0c \u4e5f \u5c31\u662f Semantic \u8bed\u4e49 \u5206\u5272 \u7684 \u57fa\u7840 \u3002 \u4e0d\u540c \u7684 \u7269\u4f53 \u5728 \u8bed\u4e49 \u5206\u5272 \u91cc \u6709 \u4e0d\u540c \u7684 \u989c\u8272 \uff0c \u672c\u8d28 \u662f \u88ab CARLA \u5206\u7c7b \u4e86 \uff0c \u7136\u540e \u53ef\u4ee5 \u6839\u636e \u8fd9\u4e2a Tag \u7ed9 \u7269\u4f53 \u5bf9\u5e94 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u65b9\u6848 \u7f3a\u70b9 \uff1a \u7c92\u5ea6 \u5f88\u7c97 \uff0c \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u7684 \u73bb\u7483 \u548c \u8f66\u724c \u662f \u5b8c\u5168 \u4e0d\u540c \u7684 \u53cd\u5c04 \u60c5\u51b5 \u3002 \uff08 \u4e0a\u8ff0 \u8bba\u6587 \u7528 \u7684 \u5c31\u662f \u8fd9\u79cd \u65b9\u6cd5 \uff09 2 \uff09 \u57fa\u4e8e \u7269\u7406 \u6750\u8d28 \u3002 RayCast \u7684 \u63a5\u53e3 LineTrace \u548c \u8fd4\u56de \u7ed3\u679c FHitResult \u53ef\u4ee5 \u770b \u4e00\u4e0b \uff0c \u91cc\u9762 \u53ef\u4ee5 \u62ff\u5230 \u7269\u7406 \u6750\u8d28 \u7684 \u4fe1\u606f \u3002 \u518d \u6839\u636e \u8fd9\u4e2a \u6807\u8bb0 \u7ed9 \u5bf9\u5e94 \u6750\u8d28 \u4e0d\u540c \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u65b9\u6848 \u7f3a\u70b9 \uff1a \u7269\u7406 \u6750\u8d28 UE \u9ed8\u8ba4 \u53ea \u5141\u8bb8 \u8bbe\u7f6e 63 \u4e2a \uff0c \u800c\u4e14 \u5f97 \u770b \u5b9e\u9645 \u6750\u8d28 \u7684 \u7c92\u5ea6 \uff0c CARLA \u4e2d\u6709 \u5f88\u591a \u697c \uff0c \u4e00\u680b \u697c \u53ea\u6709 \u4e00\u4e2a \u6750\u8d28 \uff0c \u6240\u4ee5 \u4e5f \u53ea\u80fd \u8bbe\u7f6e \u4e00\u4e2a \u5bf9\u5e94 \u7684 \u7269\u7406 \u6750\u8d28 \u3002 \u800c\u4e14 \u8bbe\u7f6e \u7269\u7406 \u6750\u8d28 \u4f1a \u5f71\u54cd \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8868\u73b0 \uff0c \u6bd5\u7adf \u8fd9\u4e2a \u672c\u6765 \u5c31\u662f \u7ed9 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7528 \u7684 \u3002 \u53c2\u8003 issue \uff1a https : / / github . com / carla - simulator / carla / issues / 6171 7 \u3001 CARLA \u7684 Lidar \u652f\u6301 \u591a \u56de\u6ce2 \u5417 \uff1f \u7b54 \uff1a \u4e0d \u652f\u6301 \u3002 \u4e86\u89e3 \u591a \u56de\u6ce2 \u539f\u7406 \u7684 \u53ef\u4ee5 \u624b\u52a8 \u5b9e\u73b0 \uff0c \u5f53\u7136 \u4f30\u8ba1 \u4f1a \u4f34\u968f \u7740 \u6027\u80fd \u6d88\u8017 \u589e\u957f \u3002 UltraSonic / \u8d85\u58f0 \u58f0\u6ce2 \u8d85\u58f0\u6ce2 1 \u3001 CARLA \u6ca1\u6709 \u6709\u6ca1\u6709 \u8d85\u58f0 \u58f0\u6ce2 \u8d85\u58f0\u6ce2 \u96f7\u8fbe \uff1f \u7b54 \uff1a \u6ca1\u6709 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u8fd9 \u7c7b \u4e3b\u52a8 \u53d1\u5c04 \u63a2\u6d4b \u6027 \u96f7\u8fbe \uff0c \u5e95\u5c42 \u90fd \u662f RayCast \u3002","title":"Radar"},{"location":"faq/radar/#_1","text":"","title":"\u96f7\u8fbe"},{"location":"faq/radar/#radar","text":"1 \u3001 CARLA \u81ea\u5e26 \u96f7\u8fbe \u53d7 \u5929\u6c14 \u5f71\u54cd \u5417 \uff1f \u7b54 \uff1a \u7b54 \uff1a \u4e0d \u53d7 \u5f71\u54cd \uff0c Lidar \u540c\u7406 \u3002 \u7269\u7406 \u8fc7\u7a0b \u4eff\u771f \u4e0d\u662f CARLA \u5728\u610f \u7684 \u4e1c\u897f \u3002 \u6709 \u80fd\u529b \u7684 \u540c\u5b66 \u53ef\u4ee5 \u81ea\u5df1 \u5f00\u53d1 \u3002 2 \u3001 CARLA \u6709 \u7406\u60f3 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5417 \uff1f \u7b54 \uff1a \u6ca1\u6709 \uff0c \u6709 \u80fd\u529b \u7684 \u540c\u5b66 \u53ef\u4ee5 \u81ea\u5df1 \u5f00\u53d1 \u3002 \u5e95\u5c42 \u539f\u7406 \u4e0e Radar \u7c7b\u4f3c \u3002 3 \u3001 CARLA \u6709 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u5417 \uff1f \u7b54 \uff1a \u6ca1\u6709 \uff0c \u6709 \u80fd\u529b \u7684 \u540c\u5b66 \u53ef\u4ee5 \u81ea\u5df1 \u5f00\u53d1 \u3002 \u7406\u60f3 \u6a21\u578b \u53ef\u4ee5 \u53c2\u8003 Lidar \u3002 \u8fd9\u4e9b \u5e95\u5c42 \u90fd \u662f \u57fa\u4e8e RayCast \u505a \u7684 \u3002 \u5f53\u7136 \u4e5f \u770b\u5230 \u8fc7 \u4e00\u4e2a \u901a\u8fc7 \u56fe\u50cf \u53bb \u751f\u6210 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u8f93\u51fa \u7684 \u65b9\u6cd5 \uff0c \u5fd8 \u4e86 \u54ea\u7bc7 \u8bba\u6587 \u4e86 \u3002 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u662f \u4f20\u7edf \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u7684 \u5347\u7ea7 \u5347\u7ea7\u7248 \uff0c 4D \u6307 \u7684 \u662f \u901f\u5ea6 \u3001 \u8ddd\u79bb \u3001 \u6c34\u5e73 \u89d2\u5ea6 \u3001 \u5782\u76f4 \u9ad8\u5ea6 \u56db\u4e2a \u7ef4\u5ea6 \u3002 \u76f8\u6bd4 \u4f20\u7edf 3D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \uff0c 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u589e\u52a0 \u4e86 \u201c \u9ad8\u5ea6 \u201d \u7684 \u63a2\u6d4b \uff0c \u5c06 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ef4\u5ea6 \u6574\u5408 \u5230 \u4f20\u7edf \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u4e2d \uff0c \u8fd9 \u4f7f\u5f97 4D \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u7684 \u7ef4\u5ea6 \u66f4\u52a0 \u4e30\u5bcc \uff0c \u53ef\u4ee5 \u6d4b\u91cf \u4fef\u4ef0 \u89d2\u5ea6 \uff0c \u4e14 \u89d2\u5ea6 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u53ef\u4ee5 \u8fbe\u5230 1 \u5ea6 \u5de6\u53f3 \u3002 \u800c\u4e14 \u6beb\u7c73 \u7c73\u6ce2 \u6beb\u7c73\u6ce2 \u96f7\u8fbe \u63a2\u6d4b \u96f7\u8fbe\u63a2\u6d4b \u8ddd\u79bb \u66f4\u957f \uff0c \u6700\u8fdc \u63a2\u6d4b \u8ddd\u79bb \u53ef\u8fbe 350 \u591a\u7c73 \u3002","title":"Radar / \u96f7\u8fbe"},{"location":"faq/radar/#lidar","text":"1 \u3001 Lidar \u6709 \u8fd0\u52a8 \u7578\u53d8 \u5417 \uff1f \u7b54 \uff1a \u6709 \u4e00\u70b9 \u70b9\u70b9 \u4e00\u70b9\u70b9 \u3002 \u56e0\u4e3a \u5f15\u64ce \u662f \u79bb\u6563 \u65f6\u95f4 \uff0c \u4f46 \u79bb\u6563 \u7684 \u7c92\u5ea6 \u6ca1\u6709 \u8fbe\u5230 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf \u4e00\u5217 \uff08 128 \u7ebf\u626b \u4e00\u6b21 \u6216 \u4e24\u6b21 \uff09 \u7684 \u65f6\u95f4 \uff0c \u4f46 CARLA Lidar \u7684 \u5b9e\u73b0 \u903b\u8f91 \u662f \u6839\u636e delta time \uff08 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u662f fixed _ delta _ time \uff09 \u53c2\u6570 \u3002 \u6240\u4ee5 CARLA Lidar \u8ba1\u7b97 \u4e00\u6b21 \uff0c \u4e0d \u61c2 \u53c2\u6570 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5927 \u6982\u7387 \u4e5f \u4e0d\u662f \u5b8c\u6574 \u7684 \u4e00\u5e27 \uff08 \u8f93\u51fa \u53ea\u6709 \u534a\u4e2a \u5708 \u7684 \u60c5\u51b5 \uff09 \uff0c \u4ece \u8fd9\u4e2a \u89d2\u5ea6 \u89d2\u5ea6\u770b \uff0c \u51e0\u5e27 \u62fc\u6210 \u5b8c\u6574 \u7684 \u4e00\u5e27 \uff0c \u51e0\u5e27 \u662f \u5728 \u4e0d\u540c \u4eff\u771f \u65f6\u95f4 \u4e0b \u751f\u6210 \u7684 \uff0c \u6709 \u7c92\u5ea6 \u7c97\u7c92\u5ea6 \u7684 \u8fd0\u52a8 \u7578\u53d8 \u3002 \u7406\u8bba \u4e0a \uff0c \u53ea\u8981 \u7c92\u5ea6 \u591f \u5c0f \uff08 1ms \uff09 \uff0c \u62fc\u51fa \u51fa\u6765 \u62fc\u51fa\u6765 \u7684 \u70b9\u4e91 \u5c31\u662f \u6709 \u8fd0\u52a8 \u7578\u53d8 \u7684 \u3002 \u5f53\u7136 \uff0c \u8fd0\u884c \u7684 \u4e5f \u4f1a \u5f88\u6162 \u3002 2 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u6211 \u7684 Lidar \u8f93\u51fa \u4e0d\u662f \u5b8c\u6574 \u7684 \u70b9\u4e91 \uff1f \u7b54 \uff1a \u5efa\u8bae \u4e86\u89e3 \u4e09\u4e2a \u53c2\u6570 \u6982\u5ff5 \uff1a world tick ( fixed _ delta _ time ) , sensor tick , rotation frequence \u3002 \u5728 CARLA \u9ed8\u8ba4 \u7684 \u5b9e\u73b0 \u903b\u8f91 \u4e0b \uff0c \u4e00\u4e2a \u4eff\u771f \u79d2 \u7684 \u70b9\u4e91 \u603b\u6570 \u5e94\u8be5 \u5728 [ rotation frequence * points _ per _ second * 80% ] \u5de6\u53f3 \uff0c \u6839\u636e \u626b\u63cf \u7684 \u573a\u5730 \u662f\u5426 \u5f00\u9614 \u51b3\u5b9a \u8fd4\u56de \u7684 \u70b9\u4e91\u6570 \u3002 \u56e0\u4e3a \u6253 \u51fa\u53bb \u7684 \u6fc0\u5149 \u6ca1 \u51fb\u4e2d \u7269\u4f53 \u5c31 \u4e0d\u4f1a \u6709\u70b9 \u4e91 \uff0c \u6240\u4ee5 \u70b9\u4e91\u6570 \u4e00\u5b9a \u662f \u7565 \u5c11 \u7684 \u3002 3 \u3001 Lidar \u53d7 \u5929\u6c14 \u5f71\u54cd \u5417 \uff1f \u7b54 \uff1a \u4e0d \u53d7 \u5929\u6c14 \u5f71\u54cd \u3002 \u4e5f \u4e0d\u53d7 \u7c92\u5b50 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7c92\u5b50\u7cfb\u7edf \u5f71\u54cd \uff08 \u4e0d\u7ba1 \u4f60 \u662f \u8001 \u7684 \u7c92\u5b50 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7c92\u5b50\u7cfb\u7edf \u8fd8\u662f Niagara \u7c92\u5b50 \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7c92\u5b50\u7cfb\u7edf \uff09 \u3002 4 \u3001 \u600e\u4e48 \u6a21\u62df Mems \u7b49 \u975e \u673a\u68b0 \u673a\u68b0\u5f0f Lidar \uff1f \u7b54 \uff1a \u6709 \u80fd\u529b \u7684 \u53ef\u4ee5 \u81ea\u5df1 \u8bbe\u8ba1 RayCast \u53d1\u5c04 \u65b9\u5f0f \u3002 \u6709 \u4e00\u7bc7 \u8bba\u6587 \u5b9e\u73b0 \u8fc7 \u3001 Github \u9879\u76ee \u5730\u5740 \u3002 5 \u3001 \u600e\u4e48 \u5b9e\u73b0 Lidar \u7684 \u591a\u6b21 \u53cd\u5c04 \uff1f \u7b54 \uff1a \u4e0a \u4e00\u4e2a \u95ee\u9898 \u7684 \u8bba\u6587 \u4e5f \u5b9e\u73b0 \u8fc7 \u3002 \u4f46 \u539f\u7406 \u662f \uff1a \u8ba1\u7b97 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u53d1\u5c04 \u7684 \u5f3a\u5ea6 \uff0c \u5982\u679c \u5927\u4e8e 50% \uff0c \u5c31 \u5728 \u51fb\u4e2d \u70b9\u5ef6 \u5165\u5c04 \u65b9\u5411 \u4e0e \u51fb\u4e2d \u70b9 \u6cd5\u7ebf \u7684 \u89d2\u5ea6 \u518d\u53d1 \u3002 \u7b2c\u4e8c \u4e8c\u6b21 \u7b2c\u4e8c\u6b21 \u53d1\u5c04 \u51fb\u4e2d \u7684 \u70b9 \u4e3a \u70b9\u4e91 \u7684 \u5750\u6807 \u3002 \u4e2a\u4eba \u7406\u89e3 \uff1a \u5047 \u3002 \u4e2a\u4eba \u611a\u89c1 \uff1a Lidar \u662f \u901a\u8fc7 \u76d8\u7801 \u89d2 \u548c TTF \u51b3\u5b9a \u70b9\u4e91 \u4f4d\u7f6e \u7684 \uff0c \u76d8\u7801 \u89d2 \u51b3\u5b9a \u70b9\u4e91 \u65b9\u5411 \uff0c TTF \uff08 time to fly \uff0c \u98de\u884c \u65f6\u95f4 \uff09 \u51b3\u5b9a \u8ddd\u79bb \u3002 \u770b \u4e86 \u77e5\u4e4e \u96ea\u5cad \u98de\u82b1 \u5728 \u300a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe lidar \u76ee\u524d \u7684 \u6280\u672f \u96be\u70b9 \u5728 \u54ea \uff0c \u5173\u952e \u6280\u672f \u5173\u952e\u6280\u672f \u90fd \u6709 \u54ea\u4e9b \uff1f \u300b \u4e0b \u7684 \u56de\u7b54 \uff0c \u6211 \u5927\u6982 \u77e5\u9053 \u9b3c\u5f71 \u548c \u81a8\u80c0 \u7684 \u539f\u56e0 \u3002 \u6240\u4ee5 \u591a\u6b21 \u53cd\u5c04 \u80fd \u751f\u6210 \u70b9\u4e91 \u6700 \u91cd\u8981 \u7684 \u4e00\u70b9 \u662f \uff1a \u591a\u6b21 \u8def\u5f84 \u53cd\u5c04 \u540e \uff0c \u6700\u7ec8 \u80fd \u88ab \u63a5\u6536 \u63a5\u6536\u5668 \u611f\u77e5 \u3002 \u5e76\u4e14 \u70b9\u4e91 \u7684 \u65b9\u5411 \u53ea \u53d7\u76d8 \u7801\u89d2 \u51b3\u5b9a \uff0c \u4e0d\u662f \u4e24\u6b21 \u53cd\u5c04 \u51fb\u4e2d \u7684 \u70b9 \u5c31\u662f \u6700\u7ec8 \u7684 \u70b9\u4e91 \u7684 \u4f4d\u7f6e \uff01 \uff08 \u5f53\u7136 \uff0c \u7406\u89e3 \u4e86 \u539f\u7406 \uff0c \u4e5f \u5c31 \u6709 \u53ef\u80fd \u53bb \u5b9e\u73b0 \u4e86 \uff0c \u6027\u80fd \u6d88\u8017 \u4f30\u8ba1 \u4e0d\u5c0f \uff09 6 \u3001 \u600e\u4e48 \u5b9e\u73b0 \u4e0d\u540c \u7269\u4f53 \u4e0d\u540c \u53cd\u5c04 \u53cd\u5c04\u7387 \uff1f \u7b54 \uff1a \u4e2a\u4eba \u4e86\u89e3 \u4e24\u79cd \u65b9\u6848 \uff1a 1 \uff09 \u3001 \u4e00\u79cd \u57fa\u4e8e CARLA \u7684 Tag \u7cfb\u7edf \uff0c \u4e5f \u5c31\u662f Semantic \u8bed\u4e49 \u5206\u5272 \u7684 \u57fa\u7840 \u3002 \u4e0d\u540c \u7684 \u7269\u4f53 \u5728 \u8bed\u4e49 \u5206\u5272 \u91cc \u6709 \u4e0d\u540c \u7684 \u989c\u8272 \uff0c \u672c\u8d28 \u662f \u88ab CARLA \u5206\u7c7b \u4e86 \uff0c \u7136\u540e \u53ef\u4ee5 \u6839\u636e \u8fd9\u4e2a Tag \u7ed9 \u7269\u4f53 \u5bf9\u5e94 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u65b9\u6848 \u7f3a\u70b9 \uff1a \u7c92\u5ea6 \u5f88\u7c97 \uff0c \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u7684 \u73bb\u7483 \u548c \u8f66\u724c \u662f \u5b8c\u5168 \u4e0d\u540c \u7684 \u53cd\u5c04 \u60c5\u51b5 \u3002 \uff08 \u4e0a\u8ff0 \u8bba\u6587 \u7528 \u7684 \u5c31\u662f \u8fd9\u79cd \u65b9\u6cd5 \uff09 2 \uff09 \u57fa\u4e8e \u7269\u7406 \u6750\u8d28 \u3002 RayCast \u7684 \u63a5\u53e3 LineTrace \u548c \u8fd4\u56de \u7ed3\u679c FHitResult \u53ef\u4ee5 \u770b \u4e00\u4e0b \uff0c \u91cc\u9762 \u53ef\u4ee5 \u62ff\u5230 \u7269\u7406 \u6750\u8d28 \u7684 \u4fe1\u606f \u3002 \u518d \u6839\u636e \u8fd9\u4e2a \u6807\u8bb0 \u7ed9 \u5bf9\u5e94 \u6750\u8d28 \u4e0d\u540c \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u65b9\u6848 \u7f3a\u70b9 \uff1a \u7269\u7406 \u6750\u8d28 UE \u9ed8\u8ba4 \u53ea \u5141\u8bb8 \u8bbe\u7f6e 63 \u4e2a \uff0c \u800c\u4e14 \u5f97 \u770b \u5b9e\u9645 \u6750\u8d28 \u7684 \u7c92\u5ea6 \uff0c CARLA \u4e2d\u6709 \u5f88\u591a \u697c \uff0c \u4e00\u680b \u697c \u53ea\u6709 \u4e00\u4e2a \u6750\u8d28 \uff0c \u6240\u4ee5 \u4e5f \u53ea\u80fd \u8bbe\u7f6e \u4e00\u4e2a \u5bf9\u5e94 \u7684 \u7269\u7406 \u6750\u8d28 \u3002 \u800c\u4e14 \u8bbe\u7f6e \u7269\u7406 \u6750\u8d28 \u4f1a \u5f71\u54cd \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u8868\u73b0 \uff0c \u6bd5\u7adf \u8fd9\u4e2a \u672c\u6765 \u5c31\u662f \u7ed9 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7528 \u7684 \u3002 \u53c2\u8003 issue \uff1a https : / / github . com / carla - simulator / carla / issues / 6171 7 \u3001 CARLA \u7684 Lidar \u652f\u6301 \u591a \u56de\u6ce2 \u5417 \uff1f \u7b54 \uff1a \u4e0d \u652f\u6301 \u3002 \u4e86\u89e3 \u591a \u56de\u6ce2 \u539f\u7406 \u7684 \u53ef\u4ee5 \u624b\u52a8 \u5b9e\u73b0 \uff0c \u5f53\u7136 \u4f30\u8ba1 \u4f1a \u4f34\u968f \u7740 \u6027\u80fd \u6d88\u8017 \u589e\u957f \u3002","title":"Lidar / \u6fc0\u5149\u96f7\u8fbe"},{"location":"faq/radar/#ultrasonic","text":"1 \u3001 CARLA \u6ca1\u6709 \u6709\u6ca1\u6709 \u8d85\u58f0 \u58f0\u6ce2 \u8d85\u58f0\u6ce2 \u96f7\u8fbe \uff1f \u7b54 \uff1a \u6ca1\u6709 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u8fd9 \u7c7b \u4e3b\u52a8 \u53d1\u5c04 \u63a2\u6d4b \u6027 \u96f7\u8fbe \uff0c \u5e95\u5c42 \u90fd \u662f RayCast \u3002","title":"UltraSonic / \u8d85\u58f0\u6ce2"},{"location":"faq/sensor/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u672c\u6587 \u4e3b\u8981 \u662f \u7b80\u8ff0 \u4e86 \u5728 \u4f7f\u7528 Carla \u8fc7\u7a0b \u4e2d \u9047\u5230 \u7684 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e9b \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 1 \u3001 Carla \u6ca1\u6709 \u6709\u6ca1\u6709 \u9c7c\u773c \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff1f \u7b54 \uff1a \u6709 \uff0c \u5728 Carla \u7684 PullRequest \u4e2d \u4f20 \u4e86 \u9c7c\u773c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5e76\u4e14 \u5728 issues \u548c pullrequets \u4e2d \u5df2\u7ecf \u5f62\u6210 \u4e86 \u6bd4\u8f83 \u5b8c\u6574 \u7684 \u4ee3\u7801 bug \u4fee\u590d \u7f16\u8bd1 \u8fc7\u7a0b \uff0c \u4e3b\u8981 \u662f \u9002\u914d UE4.26 \u7684 \u4ee3\u7801 \u3002 2 \u3001 Carla \u6ca1\u6709 \u6709\u6ca1\u6709 \u9c7c\u773c \u7684 \u8bed\u4e49 \u5206\u5272 \u6216 \u5b9e\u4f8b \u5206\u5272 \u4f20\u5668 \uff1f \u7b54 \uff1a \u53ef\u4ee5 \u5b9e\u73b0 \uff0c \u867d\u7136 \u6ca1 \u6ce8\u610f issues \u91cc \u6ca1\u6709 \u6709\u6ca1\u6709 \u5b9e\u73b0 \u65b9\u5f0f \u3002 \u4f46 \u4e86\u89e3 \u666e\u901a RGB \u548c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u77e5\u9053 \uff0c \u8fd9\u4e2a \u5176\u5b9e \u662f \u5904\u7406 \u540e\u5904\u7406 \u6750\u8d28 \u7684 \u529f\u52b3 \u3002 3 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u4e00\u4e2a Carla \u591a\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u663e\u5361 \u8fd8\u662f \u5229\u7528 \u7528\u7387 \u5229\u7528\u7387 \u5f88 \u4f4e \uff1f \u7b54 \uff1a \u5c0f\u7f16 \u5206\u6790 \u8fd9\u4e2a \u662f \u591a\u4e2a SceneCapture \u5176\u5b9e \u662f \u8f6e\u6d41 \u8fdb\u5165 \u6e32\u67d3 \u961f\u5217 \u7684 \u3002 \u5728 \u5e95\u5c42 RHI \uff08 \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \uff09 \u7ebf\u7a0b \u5e76 \u4e0d\u80fd \u5e76\u884c \u6267\u884c \u5e76\u884c\u6267\u884c \u6e32\u67d3 \u4efb\u52a1 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5e94\u8be5 \u9650\u5236 \u5728 UE \u4fa7 \u3002 4 \u3001 Carla \u4ec0\u4e48 \u65f6\u5019 \u8fc1\u79fb UE5 \uff1f \u7b54 \uff1a \u73b0\u5728 Carla Github \u4e2d \u5df2\u6709 UE5 . x \u7684 \u7248\u672c \u3002 \u5c0f\u7f16 \u8ba4\u4e3a UE5 \u7684 \u6e32\u67d3 \u6548\u679c \u5e76 \u4e0d\u80fd \u89e3\u51b3 \u6e32\u67d3 \u4e0d \u771f\u7684 \u95ee\u9898 \uff0c \u4e5f \u4e0d\u80fd \u89e3\u51b3 \u6e32\u67d3 \u6027\u80fd \u7684 \u95ee\u9898 \u3002 \u5f53\u7136 \uff0c \u201c \u6709 \u66f4\u597d \u7684 \u7528 \u66f4\u597d \u7684 \u201d \u7684 \u51fa\u53d1 \u53d1\u70b9 \u51fa\u53d1\u70b9 \u6ca1 \u5565 \u95ee\u9898 \u3002 \u4f46 \u9ad8 \u6e32\u67d3 \u753b\u8d28 \u4f34\u968f \u7740 \u9ad8\u6027 \u6027\u80fd \u9ad8\u6027\u80fd \u6d88\u8017 \u7684 \u5b9a\u5f8b \u662f \u4e0d\u4f1a \u53d8 \u7684 \u3002 5 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 Listen \u7684 \u65f6\u5019 \uff0c \u603b\u662f \u5361\u6b7b \uff0c \u5185\u5b58 \u7206\u70b8 \u7b54 \uff1a Carla \u7684 \u6570\u636e \u6570\u636e\u6d41 \u57fa\u4e8e TCP \uff0c \u4e00\u822c \u662f \u5728 listen ( ) \u8c03\u7528 \u7684 Callback \u51fd\u6570 \u8fd0\u884c \u65f6\u95f4 \u8f83\u957f \u3002 Carla \u670d\u52a1 \u670d\u52a1\u7aef \u5728 \u75af\u72c2 \u4ece Buffer Pool \u7533\u8bf7 \u65b0 \u7684 \u5185\u5b58 \uff0c \u5728 \u7f51\u7edc \u7aef \u5835\u585e \u3002 \u8fd9\u4e2a \u95ee\u9898 \u901a\u5e38 \u5728 \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u6570\u636e \u6570\u636e\u91cf \u5f88\u5927 \uff0c \u800c\u4e14 \u8fd8 \u9ad8\u9891 \u4ea7\u51fa \u7684 \u60c5\u51b5 \u4e0b \u51fa\u73b0 \uff0c \u5982\u679c \u662f \u5f02\u6b65 \u6a21\u5f0f \uff0c \u90a3 \u51fa\u73b0 \u9891\u7387 \u66f4\u9ad8 \u3002 \u89e3\u51b3 \u529e\u6cd5 \u89e3\u51b3\u529e\u6cd5 \uff1a \u4f18\u5316 Python \u811a\u672c \uff0c \u5199\u4e2a \u5f02\u6b65 \u5904\u7406 \u3002 6 \u3001 Carla \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u51fa\u73b0 \u7729\u5149 \u7b54 \uff1a \u4e00\u822c \u8fd9\u79cd \u60c5\u51b5 \u4f1a\u5148 \u51fa\u73b0 \u663e\u5b58 \u4e0d\u591f \u7528 \u7684 Warning \uff0c \u7136\u540e \u5c31 \u7206\u70b8 \u4e86 \u3002 \u901a\u5e38 \u4f7f\u7528 \u5927 \u663e\u5b58 \u53ef\u4ee5 \u51cf\u5c11 \u8fd9\u4e2a \u95ee\u9898 \u51fa\u73b0 \u7684 \u6982\u7387 \u3002 7 \u3001 Carla \u81ea\u5e26 \u7684 \u7578\u53d8 \u6a21\u578b \u600e\u4e48 \u7528 \uff1f \u7b54 \uff1a \u53c2\u8003 SynthEyes ' lens - distortion \u7578\u53d8 \u7b97\u6cd5 \u548c SynthEyes ' lens - distortion \u7578\u53d8 \u7b97\u6cd5 \u539f\u7406 \u3002 \u5f53\u7136 \u53ef\u4ee5 \u53bb \u770b \u5b9e\u73b0 \u5b83 \u7684 \u5904\u7406 \u540e\u5904\u7406 \u6750\u8d28 \u84dd\u56fe PhysicLensDistortion \u3002 8 \u3001 Carla \u80fd \u4e0d\u80fd \u5b9e\u73b0 \u5176\u4ed6 \u7578\u53d8 \u6a21\u578b \uff1f \u7b54 \uff1a \u4f1a \u641e \u5904\u7406 \u540e\u5904\u7406 \u6750\u8d28 \u84dd\u56fe \uff0c \u5c31 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4efb\u4f55 \u7578\u53d8 \u6a21\u578b \u3002 9 \u3001 \u5b9e\u4f8b \u5206\u5272 \u548c \u8bed\u4e49 \u5206\u5272 \u533a\u522b \u5728 \u54ea \uff1f \u7b54 \uff1a \u4e0e \u8bed\u4e49 \u5206\u5272 \u53ea \u5173\u6ce8 \u50cf\u7d20 \u7ea7\u522b \u7684 \u8bed\u4e49 \u6807\u7b7e \u4e0d\u540c \uff0c \u5b9e\u4f8b \u5206\u5272 \u8fd8 \u8981\u6c42 \u5bf9 \u540c\u7c7b \u4f46 \u4e0d\u662f \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u7269\u4f53 \u5b9e\u4f8b \u8fdb\u884c \u533a\u5206 \u548c \u5206\u5272 \u3002 \u5b9e\u4f8b \u5206\u5272 \u8f93\u51fa \u7684 RGB \u56fe\u50cf \uff1a R \u901a\u9053 \u662f \u8bed\u4e49 \u5206\u5272 \u7684 \u7ed3\u679c \uff0c GB \u901a\u9053 \u7ec4\u6210 \u5b9e\u4f8b \u5206\u5272 ID \uff0c \u5b9e\u4f8b \u5206\u5272 ID \u662f \u865a\u5e7b \u5f15\u64ce \u4e0b \u7684 UniqueID \uff0c \u5e76\u975e Carla \u5c42 \u7684 Actor ID \u3002 \u7528 \u4e24\u4e2a \u901a\u9053 \u662f \u51fa\u4e8e \u4f4d\u6570 \u5927\u5c0f \u8003\u8651 \u3002 \u8bed\u610f \u5206\u5272 \u8f93\u51fa \u7684 RGB \u56fe\u50cf \uff1a \u57fa\u4e8e Tagger \u8bbe\u7f6e \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6df1\u5ea6 \u51b3\u5b9a \u6750\u8d28 \u7684 \u81ea \u53d1\u5149 \u989c\u8272 \u3002 \u8bed\u610f \u5206\u5272 \u6750\u8d28 \uff1a \u76f8\u5173 Issue \u3002 \u5b9e\u4f8b \u5206\u5272 \u989c\u8272 \u8bbe\u7f6e \u76f8\u5173 \u4ee3\u7801 \uff1a ` ` ` cpp FLinearColor ATagger : : GetActorLabelColor ( const AActor & Actor , const crp : : CityObjectLabel & Label ) { uint32 id = Actor . GetUniqueID ( ) ; / / TODO : Warn if id > 0xffff . / / Encode label and id like semantic segmentation does / / TODO : Steal bits from R channel and maybe A channel ? FLinearColor Color ( 0.0 f , 0.0 f , 0.0 f , 1.0 f ) ; Color . R = CastEnum ( Label ) / 255.0 f ; Color . G = ( ( id & 0x00ff ) > > 0 ) / 255.0 f ; Color . B = ( ( id & 0xff00 ) > > 8 ) / 255.0 f ; return Color ; } ` ` `","title":"Sensor"},{"location":"faq/sensor/#_1","text":"\u672c\u6587 \u4e3b\u8981 \u662f \u7b80\u8ff0 \u4e86 \u5728 \u4f7f\u7528 Carla \u8fc7\u7a0b \u4e2d \u9047\u5230 \u7684 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e9b \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 1 \u3001 Carla \u6ca1\u6709 \u6709\u6ca1\u6709 \u9c7c\u773c \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff1f \u7b54 \uff1a \u6709 \uff0c \u5728 Carla \u7684 PullRequest \u4e2d \u4f20 \u4e86 \u9c7c\u773c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5e76\u4e14 \u5728 issues \u548c pullrequets \u4e2d \u5df2\u7ecf \u5f62\u6210 \u4e86 \u6bd4\u8f83 \u5b8c\u6574 \u7684 \u4ee3\u7801 bug \u4fee\u590d \u7f16\u8bd1 \u8fc7\u7a0b \uff0c \u4e3b\u8981 \u662f \u9002\u914d UE4.26 \u7684 \u4ee3\u7801 \u3002 2 \u3001 Carla \u6ca1\u6709 \u6709\u6ca1\u6709 \u9c7c\u773c \u7684 \u8bed\u4e49 \u5206\u5272 \u6216 \u5b9e\u4f8b \u5206\u5272 \u4f20\u5668 \uff1f \u7b54 \uff1a \u53ef\u4ee5 \u5b9e\u73b0 \uff0c \u867d\u7136 \u6ca1 \u6ce8\u610f issues \u91cc \u6ca1\u6709 \u6709\u6ca1\u6709 \u5b9e\u73b0 \u65b9\u5f0f \u3002 \u4f46 \u4e86\u89e3 \u666e\u901a RGB \u548c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u77e5\u9053 \uff0c \u8fd9\u4e2a \u5176\u5b9e \u662f \u5904\u7406 \u540e\u5904\u7406 \u6750\u8d28 \u7684 \u529f\u52b3 \u3002 3 \u3001 \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u4e00\u4e2a Carla \u591a\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u663e\u5361 \u8fd8\u662f \u5229\u7528 \u7528\u7387 \u5229\u7528\u7387 \u5f88 \u4f4e \uff1f \u7b54 \uff1a \u5c0f\u7f16 \u5206\u6790 \u8fd9\u4e2a \u662f \u591a\u4e2a SceneCapture \u5176\u5b9e \u662f \u8f6e\u6d41 \u8fdb\u5165 \u6e32\u67d3 \u961f\u5217 \u7684 \u3002 \u5728 \u5e95\u5c42 RHI \uff08 \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \uff09 \u7ebf\u7a0b \u5e76 \u4e0d\u80fd \u5e76\u884c \u6267\u884c \u5e76\u884c\u6267\u884c \u6e32\u67d3 \u4efb\u52a1 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5e94\u8be5 \u9650\u5236 \u5728 UE \u4fa7 \u3002 4 \u3001 Carla \u4ec0\u4e48 \u65f6\u5019 \u8fc1\u79fb UE5 \uff1f \u7b54 \uff1a \u73b0\u5728 Carla Github \u4e2d \u5df2\u6709 UE5 . x \u7684 \u7248\u672c \u3002 \u5c0f\u7f16 \u8ba4\u4e3a UE5 \u7684 \u6e32\u67d3 \u6548\u679c \u5e76 \u4e0d\u80fd \u89e3\u51b3 \u6e32\u67d3 \u4e0d \u771f\u7684 \u95ee\u9898 \uff0c \u4e5f \u4e0d\u80fd \u89e3\u51b3 \u6e32\u67d3 \u6027\u80fd \u7684 \u95ee\u9898 \u3002 \u5f53\u7136 \uff0c \u201c \u6709 \u66f4\u597d \u7684 \u7528 \u66f4\u597d \u7684 \u201d \u7684 \u51fa\u53d1 \u53d1\u70b9 \u51fa\u53d1\u70b9 \u6ca1 \u5565 \u95ee\u9898 \u3002 \u4f46 \u9ad8 \u6e32\u67d3 \u753b\u8d28 \u4f34\u968f \u7740 \u9ad8\u6027 \u6027\u80fd \u9ad8\u6027\u80fd \u6d88\u8017 \u7684 \u5b9a\u5f8b \u662f \u4e0d\u4f1a \u53d8 \u7684 \u3002 5 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 Listen \u7684 \u65f6\u5019 \uff0c \u603b\u662f \u5361\u6b7b \uff0c \u5185\u5b58 \u7206\u70b8 \u7b54 \uff1a Carla \u7684 \u6570\u636e \u6570\u636e\u6d41 \u57fa\u4e8e TCP \uff0c \u4e00\u822c \u662f \u5728 listen ( ) \u8c03\u7528 \u7684 Callback \u51fd\u6570 \u8fd0\u884c \u65f6\u95f4 \u8f83\u957f \u3002 Carla \u670d\u52a1 \u670d\u52a1\u7aef \u5728 \u75af\u72c2 \u4ece Buffer Pool \u7533\u8bf7 \u65b0 \u7684 \u5185\u5b58 \uff0c \u5728 \u7f51\u7edc \u7aef \u5835\u585e \u3002 \u8fd9\u4e2a \u95ee\u9898 \u901a\u5e38 \u5728 \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u6570\u636e \u6570\u636e\u91cf \u5f88\u5927 \uff0c \u800c\u4e14 \u8fd8 \u9ad8\u9891 \u4ea7\u51fa \u7684 \u60c5\u51b5 \u4e0b \u51fa\u73b0 \uff0c \u5982\u679c \u662f \u5f02\u6b65 \u6a21\u5f0f \uff0c \u90a3 \u51fa\u73b0 \u9891\u7387 \u66f4\u9ad8 \u3002 \u89e3\u51b3 \u529e\u6cd5 \u89e3\u51b3\u529e\u6cd5 \uff1a \u4f18\u5316 Python \u811a\u672c \uff0c \u5199\u4e2a \u5f02\u6b65 \u5904\u7406 \u3002 6 \u3001 Carla \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u51fa\u73b0 \u7729\u5149 \u7b54 \uff1a \u4e00\u822c \u8fd9\u79cd \u60c5\u51b5 \u4f1a\u5148 \u51fa\u73b0 \u663e\u5b58 \u4e0d\u591f \u7528 \u7684 Warning \uff0c \u7136\u540e \u5c31 \u7206\u70b8 \u4e86 \u3002 \u901a\u5e38 \u4f7f\u7528 \u5927 \u663e\u5b58 \u53ef\u4ee5 \u51cf\u5c11 \u8fd9\u4e2a \u95ee\u9898 \u51fa\u73b0 \u7684 \u6982\u7387 \u3002 7 \u3001 Carla \u81ea\u5e26 \u7684 \u7578\u53d8 \u6a21\u578b \u600e\u4e48 \u7528 \uff1f \u7b54 \uff1a \u53c2\u8003 SynthEyes ' lens - distortion \u7578\u53d8 \u7b97\u6cd5 \u548c SynthEyes ' lens - distortion \u7578\u53d8 \u7b97\u6cd5 \u539f\u7406 \u3002 \u5f53\u7136 \u53ef\u4ee5 \u53bb \u770b \u5b9e\u73b0 \u5b83 \u7684 \u5904\u7406 \u540e\u5904\u7406 \u6750\u8d28 \u84dd\u56fe PhysicLensDistortion \u3002 8 \u3001 Carla \u80fd \u4e0d\u80fd \u5b9e\u73b0 \u5176\u4ed6 \u7578\u53d8 \u6a21\u578b \uff1f \u7b54 \uff1a \u4f1a \u641e \u5904\u7406 \u540e\u5904\u7406 \u6750\u8d28 \u84dd\u56fe \uff0c \u5c31 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4efb\u4f55 \u7578\u53d8 \u6a21\u578b \u3002 9 \u3001 \u5b9e\u4f8b \u5206\u5272 \u548c \u8bed\u4e49 \u5206\u5272 \u533a\u522b \u5728 \u54ea \uff1f \u7b54 \uff1a \u4e0e \u8bed\u4e49 \u5206\u5272 \u53ea \u5173\u6ce8 \u50cf\u7d20 \u7ea7\u522b \u7684 \u8bed\u4e49 \u6807\u7b7e \u4e0d\u540c \uff0c \u5b9e\u4f8b \u5206\u5272 \u8fd8 \u8981\u6c42 \u5bf9 \u540c\u7c7b \u4f46 \u4e0d\u662f \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u7269\u4f53 \u5b9e\u4f8b \u8fdb\u884c \u533a\u5206 \u548c \u5206\u5272 \u3002 \u5b9e\u4f8b \u5206\u5272 \u8f93\u51fa \u7684 RGB \u56fe\u50cf \uff1a R \u901a\u9053 \u662f \u8bed\u4e49 \u5206\u5272 \u7684 \u7ed3\u679c \uff0c GB \u901a\u9053 \u7ec4\u6210 \u5b9e\u4f8b \u5206\u5272 ID \uff0c \u5b9e\u4f8b \u5206\u5272 ID \u662f \u865a\u5e7b \u5f15\u64ce \u4e0b \u7684 UniqueID \uff0c \u5e76\u975e Carla \u5c42 \u7684 Actor ID \u3002 \u7528 \u4e24\u4e2a \u901a\u9053 \u662f \u51fa\u4e8e \u4f4d\u6570 \u5927\u5c0f \u8003\u8651 \u3002 \u8bed\u610f \u5206\u5272 \u8f93\u51fa \u7684 RGB \u56fe\u50cf \uff1a \u57fa\u4e8e Tagger \u8bbe\u7f6e \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6df1\u5ea6 \u51b3\u5b9a \u6750\u8d28 \u7684 \u81ea \u53d1\u5149 \u989c\u8272 \u3002 \u8bed\u610f \u5206\u5272 \u6750\u8d28 \uff1a \u76f8\u5173 Issue \u3002 \u5b9e\u4f8b \u5206\u5272 \u989c\u8272 \u8bbe\u7f6e \u76f8\u5173 \u4ee3\u7801 \uff1a ` ` ` cpp FLinearColor ATagger : : GetActorLabelColor ( const AActor & Actor , const crp : : CityObjectLabel & Label ) { uint32 id = Actor . GetUniqueID ( ) ; / / TODO : Warn if id > 0xffff . / / Encode label and id like semantic segmentation does / / TODO : Steal bits from R channel and maybe A channel ? FLinearColor Color ( 0.0 f , 0.0 f , 0.0 f , 1.0 f ) ; Color . R = CastEnum ( Label ) / 255.0 f ; Color . G = ( ( id & 0x00ff ) > > 0 ) / 255.0 f ; Color . B = ( ( id & 0xff00 ) > > 8 ) / 255.0 f ; return Color ; } ` ` `","title":"\u4f20\u611f\u5668"},{"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 \u4ee3\u7406 \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 \u8def\u5f84 \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 \u4ee3\u7406 \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 \u8def\u5f84 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 # \u51b3\u5b9a \u662f\u5426 \u4f7f\u7528 \u5305 \u6216\u8005 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa # \u9009\u9879 A ) \u4f7f\u7528 ScenarioRunner \u5305 # 1 . \u5b89\u88c5 CARLA \u5305 : https : / / carla . readthedocs . io / en / latest / start _ quickstart / # 2 . \u4e0b\u8f7d \u5339\u914d \u7684 ScenarioRunner \u5305 : https : / / github . com / carla - simulator / scenario _ runner / releases # 3 . \u62bd\u53d6 \u5185\u5bb9 ntent 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 # \u51b3\u5b9a \u662f\u5426 \u4f7f\u7528 \u5305 \u6216\u8005 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa # \u9009\u9879 A ) \u4f7f\u7528 ScenarioRunner \u5305 # 1 . \u5b89\u88c5 CARLA \u5305 : https : / / carla . readthedocs . io / en / latest / start _ quickstart / # 2 . \u4e0b\u8f7d \u5339\u914d \u7684 ScenarioRunner \u5305 : https : / / github . com / carla - simulator / scenario _ runner / releases # 3 . \u62bd\u53d6 \u5185\u5bb9 ntent 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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4eff\u771f \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 \u4eff\u771f \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":"software/pipeline/","text":"\u5f00\u53d1 \u7684 \u7ba1\u7ebf \u8fdb\u884c \u573a\u666f \u4eff\u771f \u7684 \u5f00\u53d1 \u6d41\u7a0b \u3002 \u865a\u5e7b \u5f15\u64ce \u7684 OpenDRIVE \u63d2\u4ef6","title":"\u5f00\u53d1 \u7684 \u7ba1\u7ebf"},{"location":"software/pipeline/#_1","text":"\u8fdb\u884c \u573a\u666f \u4eff\u771f \u7684 \u5f00\u53d1 \u6d41\u7a0b \u3002","title":"\u5f00\u53d1 \u7684 \u7ba1\u7ebf"},{"location":"software/pipeline/#opendrive","text":"","title":"\u865a\u5e7b \u5f15\u64ce \u7684 OpenDRIVE \u63d2\u4ef6"},{"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"},{"location":"walker/cloning_DCB/","text":"\u5173\u4e8e \u6570\u636e \u83b7\u53d6 \u670d\u52a1 \u5408\u540c \u5fc5\u8981 \u5fc5\u8981\u6027 \u7684 \u4fe1\u606f \u4ecb\u7ecd 2021 \u5e74 \uff0c \u57fa\u4e8e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8ba4\u77e5 \u884c\u4e3a \u514b\u9686 \uff08 \u514b\u9686 DCB \uff09 \u7684 \u751f\u6001 \u4ea4\u901a \u548c \u6570\u5b57 \u4ea4\u901a \u9879\u76ee \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9879\u76ee \u63d0\u4f9b \u8d44\u91d1 \u3002 \u5728 \u8fd9\u4e2a \u9879\u76ee \u4e2d \uff0c \u6211\u4eec \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u4e86 \u7aef \u5230 \u7aef\u7684 \u6a21\u5f0f \uff0c \u5c06 \u4eba\u7c7b \u884c\u4e3a \u6a21\u5f0f \u4f5c\u4e3a \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u9879 \u76ee\u7684 \u4e00\u4e2a \u91cd\u8981 \u65b9\u9762 \u662f \u91cd\u65b0 \u6536\u96c6 \u4eba\u529b \u8d44\u672c \u4eba\u529b\u8d44\u672c \uff0c \u4ee5 \u5b9e\u73b0 \u5bf9 \u4eba\u529b \u8d44\u672c \u4eba\u529b\u8d44\u672c \u7684 \u6700\u5927 \u63a7\u5236 \u3002 \u4e00\u4e2a \u9ad8\u7ea7 \u63a7\u5236 \u63a7\u5236\u5668 \u8d1f\u8d23 \u63a7\u5236 Carla \u6a21\u62df \u6a21\u62df\u5668 \u4e0a \u7684 \u6570\u636e \u8bb0\u5f55 \u548c \u5b9e\u9a8c \u7684 \u7535\u8def \u548c \u901f\u5ea6 \u3002 CARLA \u5141\u8bb8 \u5b9a\u4e49 \u8f68\u9053 \u4ea4\u901a \u8f68\u9053\u4ea4\u901a \uff08 \u4ea4\u901a \u3001 \u5929\u6c14 \u3001 \u6c14\u8c61 \u7b49 \uff09 \u7684 \u5404\u79cd \u60c5\u51b5 \uff0c \u5e76 \u83b7\u5f97 \u5bfc\u4f53 \u3001 \u8f66\u8f86 \u901f\u5ea6 \u3001 \u7535\u538b \u7b49 \u8fdc\u666f \u8bbe\u8ba1 \u7684 \u6570\u636e \u3002 \u4e0e \u5bfc\u4f53 \u76f8\u5173 \u7684 \u6570\u636e \u53ef\u4ee5 \u611f\u77e5 \u7269\u7406 \uff0c \u5728 \u8bb0\u5f55 \u6570\u636e \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u5185 \u6a21\u62df \u8f68\u9053 \u4ea4\u901a \u8f68\u9053\u4ea4\u901a \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8fd9\u4e9b \u884c\u4e3a \u5728 \u865a\u62df \u9884\u6d4b \u548c \u63a7\u5236 \u53d8\u91cf \u63a7\u5236\u53d8 \u63a7\u5236\u53d8\u91cf \u7684 \u4f7f\u7528 \u573a\u666f \u4e2d\u8d77 \u7740 \u91cd\u8981 \u4f5c\u7528 \u3002 \u559c\u6b22 \u5728 \u9a7e\u9a76 \u9a7e\u9a76\u8231 \u5185 \u8fdb\u884c \u611f\u5b98 \u63a5\u89e6 \u7684 \u4eba \uff0c \u559c\u6b22 \u6a21\u62df \u8fd0\u52a8 \uff08 \u5982 \u52a0\u901f \u3001 \u957f\u9888 \u957f\u9888\u9e7f \u7b49 \uff09 \u7684 \u52a8\u4f5c \u5e08 \u3002 \u6a21\u62df \u8fc7\u7a0b \u4e2d\u8981 \u6536\u96c6 \u7684 \u4e3b\u8981 \u6570\u636e \u5c06 \u662f \u4e0e \u865a\u62df \u8f66\u8f86 \u72b6\u6001 \uff08 \u91cc\u7a0b \u6d4b\u91cf \uff09 \u548c \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6709\u5173 \u7684 \u6570\u636e \uff1a \u4ece \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u89d2\u5ea6 \u6a21\u62df \u7684 \u56fe\u50cf \u3001 \u7535\u56fe \u8111\u7535\u56fe \uff08 EEG \uff09 \u548c \u89c6\u89c9 \u6ce8\u610f \u6ce8\u610f\u529b \u56fe \u7b49 \u3002 \u6ce8\u610f \u6ce8\u610f\u529b \u56fe\u662f \u4e0e \u7279\u5b9a \u9a7e\u9a76 \u65f6\u523b \u7684 \u6a21\u62df \u56fe\u50cf \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u7684 \u201c \u70ed \u201d \u56fe \uff0c \u5c06 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u96c6\u4e2d \u6ce8\u610f \u6ce8\u610f\u529b \u4ee5 \u8bc4\u4f30 \u60c5\u51b5 \u5e76 \u968f\u540e \u6267\u884c \u64cd\u4f5c \u7684 \u533a\u57df \u6307\u793a \u4e3a \u201c \u70ed\u533a \u201d \u3002 \u8be5\u9879 \u76ee\u7684 \u7814\u7a76 \u76ee\u6807 \u4e4b\u4e00 \u662f \u5c06 \u4eba\u7c7b \u6ce8\u610f \u6ce8\u610f\u529b \u56fe \u4e0e \u4ece \u7ecf\u8fc7 \u8bad\u7ec3 \u7ecf\u8fc7\u8bad\u7ec3 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u578b \u83b7\u5f97 \u7684 \u6ce8\u610f \u6ce8\u610f\u529b \u56fe \u8fdb\u884c \u6bd4\u8f83 \u3002 \u9996\u5148 \uff0c \u4e86\u89e3 \u5b83\u4eec \u662f\u5426 \u76f8\u4f3c \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u66f4\u52a0 \u4fe1\u4efb \u4eba\u5de5 \u6a21\u578b \u3002 \u5176\u6b21 \uff0c \u4e86\u89e3 \u4ece \u4eba\u7c7b \u9a7e\u9a76 \u4e2d \u83b7\u5f97 \u7684 \u6ce8\u610f \u6ce8\u610f\u529b \u56fe \u662f\u5426 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u6539\u8fdb \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u578b \u7684 \u8bad\u7ec3 \u3002 \u6b63\u5982 \u6211\u4eec \u5df2\u7ecf \u63d0\u5230 \u7684 \uff0c \u5728 \u8fd9\u4e2a \u9879\u76ee \u4e2d \uff0c \u9a7e\u9a76 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e CARLA \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u6a21\u62df \u9a7e\u9a76 \u6570\u636e \u5fc5\u987b \u7531 \u5916\u90e8 \u5b9e\u4f53 \u63d0\u4f9b \uff0c \u5982 Cloning - DCB \u9879\u76ee \u6280\u672f \u62a5\u544a WP1 \u4efb\u52a1 3 \u4e2d \u6240 \u6307\u5b9a \u3002 \u63d0\u4f9b \u670d\u52a1 \u7684 \u5916\u90e8 \u5b9e\u4f53 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u5305\u62ec \uff1a \u6839\u636e CVC \u5efa\u7acb \u7684 \u53c2\u6570 \u8fdb\u884c \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u7684 \u9009\u62e9 \u6839\u636e CVC \u5236\u5b9a \u7684 \u89c4\u8303 \u63d0\u4f9b \u6240 \u9700 \u7684 \u6570\u636e \uff08 \u56fe\u50cf \u3001 \u6ce8\u610f \u6ce8\u610f\u529b \u5730\u56fe \u3001 \u8f66\u8f86 \u91cc\u7a0b \u3001 \u7535\u56fe \u8111\u7535\u56fe \u7b49 \uff09 \u3002 \u63d0\u4f9b \u6570\u636e \u63d0\u4f9b\u6570\u636e \u6536\u96c6 \u6240 \u9700 \u7684 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u548c \u4eba\u5458 \u3002 \u8d1f\u8d23 \u9075\u5b88 LOPD \u5173\u4e8e \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \u6570\u636e \u7684 \u89c4\u5b9a \uff0c \u53ca\u65f6 \u901a\u77e5 \u4ed6\u4eec \u5e76 \u5f81\u5f97 \u4ed6\u4eec \u7684 \u540c\u610f \u3002 \u9274\u4e8e \u673a\u5668 \u5b66\u4e60 \u9879\u76ee \u4e2d \u6570\u636e \u7684 \u5173\u952e \u6027\u8d28 \uff0c \u8d1f\u8d23 \u63d0\u4f9b \u6b64 \u670d\u52a1 \u7684 \u5b9e\u4f53 \u4e0d\u80fd \u8f7b\u6613 \u9009\u62e9 \uff0c \u5e76\u4e14 \u5fc5\u987b \u6ee1\u8db3 \u67d0\u4e9b \u8981\u6c42 \u3002 \u8fd9\u4e9b \u8981\u6c42 \u7684 \u80cc\u666f \u3001 \u5b9a\u4e49 \u548c \u7406\u7531 \u662f \u672c \u6587\u4ef6 \u7684 \u76ee\u7684 \u3002 \u5148\u524d \u7684 \u8003\u8651 \u56e0\u7d20 CVC \u662f \u4e16\u754c \u77e5\u540d \u7684 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u62e5\u6709 \u8d85\u8fc7 27 \u5e74 \u7684 \u7ecf\u9a8c \uff0c 20 \u591a\u5e74 \u6765 \u662f \u552f\u4e00 \u7684 \u56fd\u5bb6 \u56fd\u5bb6\u7ea7 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \u3002 \u4ed6 \u7684 \u7814\u7a76 \u5de5\u4f5c \u53ca\u5176 \u5353\u8d8a \u8868\u73b0 \u5728 \u4ed6 \u7684 \u51fa\u7248 \u51fa\u7248\u7269 \u4e2d \u663e\u800c \u6613\u89c1 \u663e\u800c\u6613\u89c1 \u3002 \u6839\u636e CSIC 2023 \u5e74 \u7684 \u6392\u540d \uff0c \u5176 \u7814\u7a76 \u4eba\u5458 \u5e73\u5747 \u6bcf\u5e74 \u6709 100 \u540d \uff0c \u5176\u4e2d \u6709 4 \u540d \u7814\u7a76 \u4eba\u5458 \u8dfb\u8eab \u56fd\u5185 \u548c \u6d77\u5916 \u897f\u73ed\u7259 \u897f\u73ed\u7259\u4eba 2 , 000 \u540d \u6700 \u6709 \u5f71\u54cd \u5f71\u54cd\u529b \u7684 \u7814\u7a76 \u4eba\u5458 \u4e4b \u5217 \uff0c \u8be5 \u6392\u540d \u57fa\u4e8e \u8c37\u6b4c \u7684 H \u7d22\u5f15 \u5b66\u8005 \u5e76 \u8003\u8651 \u5230 \u6240\u6709 \u79d1\u5b66 \u5b66\u79d1 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u8fd9\u79cd \u5353\u8d8a \u5353\u8d8a\u6027 \uff0c CVC \u8981\u6c42 \u4e0e\u5176 \u5efa\u7acb \u5408\u540c \u5173\u7cfb \u7684 \u5b9e\u4f53 \u5bf9 \u7814\u7a76 \u548c \u4f20\u64ad \u5de5\u4f5c \u505a\u51fa \u540c\u7b49 \u7a0b\u5ea6 \u7684 \u627f\u8bfa \u3002 \u8981\u6c42 \u6b64 \u627f\u8bfa \u7684 \u65b9\u5f0f \u662f \u9075\u5b88 \u4e0b \u4e00\u8282 \u4e2d \u8be6\u8ff0 \u7684 \u8981\u6c42 \u3002 \u8981\u6c42 \u9884\u8ba1 \u5728 \u6570\u636e \u6536\u96c6 \u670d\u52a1 \u7684 \u6267\u884c \u8fc7\u7a0b \u4e2d \uff0c CVC \u548c \u63d0\u4f9b \u5b9e\u4f53 \u4e4b\u95f4 \u5c06 \u8fdb\u884c \u6709\u529b \u5f3a\u6709\u529b \u7684 \u4ea4\u4e92 \uff0c \u4ee5 \u5f00\u53d1 \u548c \u9a8c\u8bc1 \u89c4\u8303 \u548c \u9a7e\u9a76 \u573a\u666f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4f9b\u5e94 \u4f9b\u5e94\u5546 \u5b9e\u4f53 \u5fc5\u987b \u6ee1\u8db3 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8981\u6c42 \uff0c \u5206\u4e3a \uff1a \u6280\u672f \u8981\u6c42 \u529f\u80fd \u8981\u6c42 \u5236\u5b9a \u6280\u672f \u8981\u6c42 \u662f \u4e3a\u4e86 \u4fdd\u8bc1 \u670d\u52a1 \u63d0\u4f9b \u5b9e\u4f53 \u62e5\u6709 \u5fc5\u8981 \u7684 \u8d44\u6e90 \uff0c \u5305\u62ec \u6750\u6599 \u548c \u5408\u683c \u7684 \u4eba\u5458 \u3002 \u5b83\u4eec \u7684 \u5efa\u7acb \u4e5f \u662f \u4e3a\u4e86 \u201c \u517c\u5bb9 \u201d CVC \u548c \u63d0\u4f9b \u63d0\u4f9b\u5546 \u5b9e\u4f53 \u7684 \u5de5\u4f5c \u73af\u5883 \u3002 \u5efa\u7acb \u529f\u80fd \u8981\u6c42 \u662f \u4e3a\u4e86 \u4fc3\u8fdb CVC \u548c \u63d0\u4f9b \u5b9e\u4f53 \u4e4b\u95f4 \u7684 \u534f\u4f5c \u548c \u4ea4\u4e92 \uff0c \u8003\u8651 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u4ea4\u4e92 \u4ee5\u53ca \u5de5\u4f5c \u7406\u5ff5 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u3002 \u8bc4\u4f30 \u6807\u51c6 \u7528\u4e8e \u5728 \u7b26\u5408 \u8981\u6c42 \u7b26\u5408\u8981\u6c42 \u7684 \u5b9e\u4f53 \u4e2d \u5efa\u7acb \u6392\u540d \uff0c \u4ee5 \u9009\u62e9 \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \u3002 \u6280\u672f \u8981\u6c42 \u62e5\u6709 \u4e00\u4e2a \u7269\u7406 \u6a21\u62df \u6c7d\u8f66 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u7684 \u201c \u9a7e\u9a76 \u9a7e\u9a76\u8231 \u201d \u3002 \u5728 \u8fd9\u4e2a \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4e2d \uff0c \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u5fc5\u987b \u80fd\u591f \u5728 \u6a21\u62df \u7684 3D \u52a8\u6001 \u73af\u5883 \u4e2d \u9a7e\u9a76 \u3002 \u4e58\u5ba2 \u8231 \u5fc5\u987b \u5b89\u88c5 \u5728 \u79fb\u52a8 \u5e73\u53f0 \u4e0a \uff0c \u4e0e \u663e\u793a \u663e\u793a\u5668 \u540c\u6b65 \uff0c \u6a21\u62df \u771f\u5b9e \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u4f53\u9a8c \uff08 \u52a0\u901f \u3001 \u5236\u52a8 \u3001 \u8f6c\u5f2f \u3001 \u4e8b\u6545 \u548c \u5730\u5f62 \u89c4\u5219 \u4e0d\u89c4\u5219 \uff09 \uff0c \u4ee5 \u54cd\u5e94 \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6267\u884c \u7684 \u64cd\u4f5c \u3002 \u4f7f\u7528 \u7684 \u4eff\u771f \u8f6f\u4ef6 \u5fc5\u987b \u662f CARLA \uff0c \u7248\u672c 0.9 . 14 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6a21\u62df \u6a21\u62df\u5668 \u5fc5\u987b \u7269\u7406 \u663e\u793a \u81f3\u5c11 120 \u00ba \u7684 \u6c34\u5e73 \u89c6\u91ce \uff08 HFOV \uff09 \uff0c \u5206\u5e03 \u5728 \u591a\u4e2a \u5c4f\u5e55 \u4e0a \uff0c \u6a21\u62df \u771f\u5b9e \u8f66\u8f86 \u7684 \u9a7e\u9a76 \u4f53\u9a8c \u3002 \u6a21\u62df \u6a21\u62df\u5668 \u8fd8 \u5fc5\u987b \u663e\u793a \u4e24\u4e2a \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u5916\u90e8 \u540e\u89c6 \u540e\u89c6\u955c \u7684 \u89c6\u56fe \uff08 \u5728 \u65c5\u6e38 \u6e38\u4e1a \u65c5\u6e38\u4e1a \u4e2d\u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \uff09 \u3002 \u4e0e \u6a21\u62df \u6a21\u62df\u5668 \u7684 \u9a7e\u9a76 \u4f1a\u8bae \u5fc5\u987b \u7528 Carla \u7684 \u201c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u201d \u5f55\u5236 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u79bb\u7ebf \u64ad\u653e \uff0c \u4ee5 \u63d0\u53d6 \u7531\u4e8e \u8ba1\u7b97 \u65f6\u95f4 \u95ee\u9898 \u800c \u65e0\u6cd5 \u5728 \u73b0\u573a \u83b7\u5f97 \u7684 \u4fe1\u606f \u3002 \u62e5\u6709 \u91c7\u6837 \u9891\u7387 \u81f3\u5c11 \u4e3a 50Hz \u7684 \u773c\u52a8 \u8ffd\u8e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u4e3a \u6bcf\u4e2a \u6837\u672c \u63d0\u4f9b \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u89c6\u89d2 \u7684 \u56fe\u50cf \u4ee5\u53ca \u76f8\u5bf9 \u4e8e \u8be5 \u56fe\u50cf \u7684 \u5750\u6807 \uff0c \u6307\u793a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6240 \u6ce8\u89c6 \u7684 \u56fe\u50cf \u533a\u57df \u3002 \u77b3\u5b54 \u6269\u5f20 \u7684 \u6d4b\u91cf \u3002 \u529f\u80fd \u8981\u6c42 CARLA \u4e2d\u8981 \u8003\u8651 \u7684 \u573a\u666f \u5c06 \u7531 CVC \u63d0\u4f9b \u6216\u7ecf \u5176 \u6279\u51c6 \u3002 \u8981 \u8003\u8651 \u7684 \u4eba\u7c7b \u53f8\u673a \u7684 \u6982\u51b5 \u5c06 \u4e0e CVC \u8fbe\u6210 \u4e00\u81f4 \u3002 \u5bf9\u4e8e CVC \uff0c \u670d\u52a1 \u4e0d\u4f1a \u201c \u95ed\u95e8 \u201d \u63d0\u4f9b \uff0c CVC \u5de5\u4f5c \u4f5c\u4eba \u4eba\u5458 \u5de5\u4f5c\u4eba\u5458 \u53ef\u80fd \u4f1a \u5728 \u63d0\u4f9b \u670d\u52a1 \u671f\u95f4 \u5728\u573a \uff08 \u5982\u679c CVC \u8ba4\u4e3a \u6709 \u5fc5\u8981 \uff09 \u3002 \u5c06 \u6309\u7167 \u5546\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u53ec\u5f00 \u4f1a\u8bae \uff0c \u5bf9 \u670d\u52a1 \u7684 \u63d0\u4f9b \u60c5\u51b5 \u8fdb\u884c \u76d1\u7763 \u3002 \u8fd8 \u5177\u6709 \u4e2d\u95f4 \u6570\u636e \u636e\u4f20 \u4f20\u8f93 \u6570\u636e\u4f20\u8f93 \u3002 \u8bc4\u4ef7 \u6807\u51c6 \uff08 \u6ee1\u5206 100 \u5206 \uff09 \u53ea\u6709 \u7b26\u5408 \u4e0a\u8ff0 \u8981\u6c42 \u7684 \u5b9e\u4f53 \u624d\u80fd \u7533\u8bf7 \u672c\u6b21 \u7535\u8bdd \u4f1a\u8bae \u7535\u8bdd\u4f1a \u7535\u8bdd\u4f1a\u8bae \u3002 \u5982\u679c \u6709 \u591a\u4e2a \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \uff0c \u5c06 \u8bc4\u4f30 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \u4ee5 \u9009\u51fa \u83b7\u80dc \u80dc\u8005 \u83b7\u80dc\u8005 \uff1a \u6839\u636e \u591a\u5e74 \u7684 \u7b26\u5408 \u6280\u672f \u8981\u6c42 \u7684 \u9879\u76ee \u7ecf\u9a8c \uff08 \u57fa\u4e8e \u6a21\u62df \u7684 \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6570\u636e \u91c7\u96c6 \uff0c \u4e0d \u8003\u8651 \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u4e0e \u8f66\u8f86 \u53c2\u6570 \u548c \u6a21\u62df \u73af\u5883 \u53ca\u65f6 \u540c\u6b65 \uff09 \uff0c \u6700\u591a \u53ef \u5206\u914d 10 \u4e2a\u70b9 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u516c\u5f0f \uff1a $ $ P1 = \\ frac { AP } { maximo ( APMax , KAP ) } \\ times 10 $ $ APMax : \u8003\u8651 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \u7684 \u6700\u5927 \u5e74\u6570 \u3002 AP : \u5019\u9009 \u5b9e\u4f53 \u63a5\u53d7 \u8bc4\u4f30 \u7684 \u5e74\u6570 \u3002 KAP = 10 \uff1a \u671f\u671b \u7684 \u6700\u4f4e \u7ecf\u9a8c \u5e74\u6570 \u3002 \u6839\u636e \u591a\u5e74 \u4f7f\u7528 CARLA \u6a21\u62df \u6a21\u62df\u5668 \u83b7\u53d6 \u4e0e \u4eba\u7c7b \u9a7e\u9a76 \u76f8\u5173 \u6570\u636e \u7684 \u7ecf\u9a8c \uff0c \u6700\u591a \u53ef \u5206\u914d 50 \u4e2a\u70b9 \u3002 \u5c31\u662f \u5c31\u662f\u8bf4 \u4e5f\u5c31\u662f\u8bf4 \uff0c \u4f7f\u7528 \u4e0e CARLA \u8fde\u63a5 \u5e76 \u7531 \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u64cd\u4f5c \u7684 \u201c \u9a7e\u9a76 \u9a7e\u9a76\u8231 \u201d \uff0c \u5e76 \u63d0\u4f9b \u6a21\u62df \u771f\u5b9e \u73af\u5883 \u4e2d \u79fb\u52a8 \u7684 \u771f\u5b9e \u8f66\u8f86 \u7684 \u7269\u7406 \u53cd\u9988 \uff1a $ $ P2 = \\ frac { AC } { maximo ( ACMax , KAC ) } \\ times 50 $ $ ACMax : \u8003\u8651 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \u7684 \u6700\u5927 \u5e74\u6570 \u3002 AC \uff1a \u5019\u9009 \u5b9e\u4f53 \u63a5\u53d7 \u8bc4\u4f30 \u7684 \u5e74\u6570 \u3002 KAC = 4 : \u671f\u671b \u7684 \u6700\u4f4e \u7ecf\u9a8c \u5e74\u6570 \u3002 \u6700 \u591a 25 \u4e2a \u53ef \u5206\u914d \u70b9 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u6536\u96c6 \u4e2d \u4f30\u8ba1 \u5305\u542b \u7684 \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6570\u91cf \uff08 \u7ed9\u5b9a \u9884\u7b97 \uff09 \uff0c \u5047\u8bbe \u6bcf\u4e2a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u82b1\u8d39 \u5c0f\u65f6 \u534a\u5c0f\u65f6 \u7684 \u6a21\u62df \u6a21\u62df\u5668 \u65f6\u95f4 \uff08 \u5373 \uff0c \u4e0d \u8ba1\u7b97 \u4e0e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u4e92\u52a8 \u6240 \u9700 \u7684 \u51c6\u5907 \u5de5\u4f5c \uff09 \u6a21\u62df \u6a21\u62df\u5668 \uff09 \uff1a $ $ P3 = \\ frac { CH } { maximo ( CHMax , KCH ) } \\ times 25 $ $ CHMax : \u8003\u8651 \u6240\u6709 \u5b9e\u4f53 \u7684 \u6700\u5927 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u6570\u91cf \u3002 \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \u3002 CH : \u63a5\u53d7 \u8bc4\u4f30 \u7684 \u5019\u9009 \u5b9e\u4f53 \u7684 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6570\u91cf \u3002 KCH = 15 : \u6700\u5c11 \u53f8\u673a \u4eba\u6570 \u3002 \u6839\u636e \u60a8 \u5728 \u8fc7\u53bb 5 \u5e74 \u4e2d \u53c2\u4e0e \u7684 Horizo \u6846\u67b6 \u5185 \u7684 \u6b27\u6d32 \u9879\u76ee \u6570\u91cf \uff0c \u6700\u591a \u53ef \u5206\u914d 5 \u5206 \uff0c \u5177\u4f53 \u516c\u5f0f \u5982\u4e0b \uff1a $ $ P4 = \\ frac { PH } { maximo ( 1 , PHMax ) } \\ times 5 $ $ PHMax : \u8003\u8651 \u5230 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \uff0c \u5176 \u53c2\u4e0e \u7684 Horizo 2020 \u548c Horizo Europe \u9879\u76ee \u7684 \u6700\u5927 \u6570\u91cf \u3002 PH : \u63a5\u53d7 \u8bc4\u4f30 \u7684 \u5019\u9009 \u5b9e\u4f53 \u53c2\u4e0e \u7684 Horizo 2020 \u548c Horizo Europe \u9879\u76ee \u7684 \u6570\u91cf \u3002 \u6839\u636e \u6240 \u63d0\u4f9b \u7684 \u7ecf\u6d4e \u62a5\u4ef7 \uff0c \u6839\u636e \u4ee5\u4e0b \u516c\u5f0f \uff0c \u6700\u591a \u53ef \u5206\u914d 5 \u5206 \uff1a $ $ P5 = \\ frac { maximo ( 1 , PFmax - OF ) } { maximo ( OFmax , OFmin ) } \\ times 5 $ $ OFmax : \u8003\u8651 \u5230 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \u7684 \u6700\u9ad8 \u7ecf\u6d4e \u62a5\u4ef7 \u3002 OFmin : \u8003\u8651 \u5230 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \u7684 \u6700\u4f4e \u7ecf\u6d4e \u62a5\u4ef7 \u3002 OF : \u53d7 \u8bc4\u4f30 \u5019\u9009 \u5b9e\u4f53 \u7684 \u7ecf\u6d4e \u62a5\u4ef7 \u3002 \u8003\u8651 \u5230 \u6240 \u63d0\u4ea4 \u5b9e\u4f53 \u7684 \u79d1\u5b66 \u6280\u672f \u79d1\u5b66\u6280\u672f \u51fa\u7248 \u51fa\u7248\u7269 \u4e0e \u514b\u9686 - DCB \u9879\u76ee \u7684 \u76f8\u5173 \u76f8\u5173\u6027 \u548c \u5173\u7cfb \uff0c \u5c06 \u8003\u8651 \u7ed9\u4e88 0 \u81f3 5 \u5206 \u7684 \u5206\u6570 \u3002 \u6211\u4eec \u5c06 \u8fd9\u4e2a \u5206\u6570 \u79f0\u4e3a P6 \u3002 \u5b9e\u4f53 \u5fc5\u987b \u83b7\u5f97 \u6700\u4f4e \u5206\u6570 70 \u5206\u624d \u6709 \u8d44\u683c \u83b7\u5f97 \u5408\u540c \uff0c \u5373 \uff1a P1 + P2 + P3 + P4 + P5 + P6 \u2265 70 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \uff0c \u6bcf\u4e2a \u5019\u9009 \u5b9e\u4f53 \u6709 \u8d23\u4efb \u4ee5 \u5b8c\u6574 \u7684 \u65b9\u5f0f \u5448\u73b0 \u4f46 \u65b9\u5f0f \u7b80\u6d01 \u4e14 \u9a8c\u8bc1 \u53ef\u9a8c\u8bc1 \uff0c CVC \u8ba1\u7b97 \u90e8\u5206 \u5206\u6570 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u672a \u63d0\u4ea4 \u7684 \u4fe1\u606f \u5c06 \u4e0d\u4e88 \u8003\u8651 \u4e0d\u4e88\u8003\u8651 \u3002 \u5408\u540c \u9884\u7b97 \u5408\u540c \u9884\u7b97 \u4e3a 45 , 000 \u6b27\u5143 \uff08 \u4e0d \u542b \u589e\u503c \u589e\u503c\u7a0e \uff09 \uff0c \u8003\u8651 \u53ef\u80fd \u8fdb\u884c \u6700 \u591a + 10% \u7684 \u4fee\u6539 \u3002 \u5408\u540c \u5fc5\u987b \u5728 \u6388\u4e88 \u540e \u6700 \u591a 5 \u4e2a \u6708 \u5185 \u6267\u884c \u3002 \u62a5\u540d \u622a\u6b62 \u65e5\u671f \u81ea \u8981\u7ea6 \u5728 CVC \u7f51\u7ad9 \u4e0a \u53d1\u5e03 \u4e4b\u65e5 \u4e4b\u65e5\u8d77 \uff0c \u8be5 \u8981\u7ea6 \u5c06 \u6301\u7eed 10 \u4e2a \u65e5\u5386 \u65e5 \u3002 \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \u5c06 \u4f7f\u7528 SERV20230016 \u4f5c\u4e3a \u63cf\u8ff0 \u5c06 \u5176 \u5f55\u53d6 \u901a\u77e5 \u901a\u77e5\u4e66 \u53d1\u9001 \u9001\u81f3 \u53d1\u9001\u81f3 \u94fe\u63a5 \u3002","title":"cloning DCB"},{"location":"walker/cloning_DCB/#_1","text":"","title":"\u5173\u4e8e \u6570\u636e \u83b7\u53d6 \u670d\u52a1 \u5408\u540c \u5fc5\u8981\u6027 \u7684 \u4fe1\u606f"},{"location":"walker/cloning_DCB/#_2","text":"2021 \u5e74 \uff0c \u57fa\u4e8e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8ba4\u77e5 \u884c\u4e3a \u514b\u9686 \uff08 \u514b\u9686 DCB \uff09 \u7684 \u751f\u6001 \u4ea4\u901a \u548c \u6570\u5b57 \u4ea4\u901a \u9879\u76ee \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9879\u76ee \u63d0\u4f9b \u8d44\u91d1 \u3002 \u5728 \u8fd9\u4e2a \u9879\u76ee \u4e2d \uff0c \u6211\u4eec \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u4e86 \u7aef \u5230 \u7aef\u7684 \u6a21\u5f0f \uff0c \u5c06 \u4eba\u7c7b \u884c\u4e3a \u6a21\u5f0f \u4f5c\u4e3a \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u9879 \u76ee\u7684 \u4e00\u4e2a \u91cd\u8981 \u65b9\u9762 \u662f \u91cd\u65b0 \u6536\u96c6 \u4eba\u529b \u8d44\u672c \u4eba\u529b\u8d44\u672c \uff0c \u4ee5 \u5b9e\u73b0 \u5bf9 \u4eba\u529b \u8d44\u672c \u4eba\u529b\u8d44\u672c \u7684 \u6700\u5927 \u63a7\u5236 \u3002 \u4e00\u4e2a \u9ad8\u7ea7 \u63a7\u5236 \u63a7\u5236\u5668 \u8d1f\u8d23 \u63a7\u5236 Carla \u6a21\u62df \u6a21\u62df\u5668 \u4e0a \u7684 \u6570\u636e \u8bb0\u5f55 \u548c \u5b9e\u9a8c \u7684 \u7535\u8def \u548c \u901f\u5ea6 \u3002 CARLA \u5141\u8bb8 \u5b9a\u4e49 \u8f68\u9053 \u4ea4\u901a \u8f68\u9053\u4ea4\u901a \uff08 \u4ea4\u901a \u3001 \u5929\u6c14 \u3001 \u6c14\u8c61 \u7b49 \uff09 \u7684 \u5404\u79cd \u60c5\u51b5 \uff0c \u5e76 \u83b7\u5f97 \u5bfc\u4f53 \u3001 \u8f66\u8f86 \u901f\u5ea6 \u3001 \u7535\u538b \u7b49 \u8fdc\u666f \u8bbe\u8ba1 \u7684 \u6570\u636e \u3002 \u4e0e \u5bfc\u4f53 \u76f8\u5173 \u7684 \u6570\u636e \u53ef\u4ee5 \u611f\u77e5 \u7269\u7406 \uff0c \u5728 \u8bb0\u5f55 \u6570\u636e \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u5185 \u6a21\u62df \u8f68\u9053 \u4ea4\u901a \u8f68\u9053\u4ea4\u901a \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8fd9\u4e9b \u884c\u4e3a \u5728 \u865a\u62df \u9884\u6d4b \u548c \u63a7\u5236 \u53d8\u91cf \u63a7\u5236\u53d8 \u63a7\u5236\u53d8\u91cf \u7684 \u4f7f\u7528 \u573a\u666f \u4e2d\u8d77 \u7740 \u91cd\u8981 \u4f5c\u7528 \u3002 \u559c\u6b22 \u5728 \u9a7e\u9a76 \u9a7e\u9a76\u8231 \u5185 \u8fdb\u884c \u611f\u5b98 \u63a5\u89e6 \u7684 \u4eba \uff0c \u559c\u6b22 \u6a21\u62df \u8fd0\u52a8 \uff08 \u5982 \u52a0\u901f \u3001 \u957f\u9888 \u957f\u9888\u9e7f \u7b49 \uff09 \u7684 \u52a8\u4f5c \u5e08 \u3002 \u6a21\u62df \u8fc7\u7a0b \u4e2d\u8981 \u6536\u96c6 \u7684 \u4e3b\u8981 \u6570\u636e \u5c06 \u662f \u4e0e \u865a\u62df \u8f66\u8f86 \u72b6\u6001 \uff08 \u91cc\u7a0b \u6d4b\u91cf \uff09 \u548c \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6709\u5173 \u7684 \u6570\u636e \uff1a \u4ece \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u89d2\u5ea6 \u6a21\u62df \u7684 \u56fe\u50cf \u3001 \u7535\u56fe \u8111\u7535\u56fe \uff08 EEG \uff09 \u548c \u89c6\u89c9 \u6ce8\u610f \u6ce8\u610f\u529b \u56fe \u7b49 \u3002 \u6ce8\u610f \u6ce8\u610f\u529b \u56fe\u662f \u4e0e \u7279\u5b9a \u9a7e\u9a76 \u65f6\u523b \u7684 \u6a21\u62df \u56fe\u50cf \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u7684 \u201c \u70ed \u201d \u56fe \uff0c \u5c06 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u96c6\u4e2d \u6ce8\u610f \u6ce8\u610f\u529b \u4ee5 \u8bc4\u4f30 \u60c5\u51b5 \u5e76 \u968f\u540e \u6267\u884c \u64cd\u4f5c \u7684 \u533a\u57df \u6307\u793a \u4e3a \u201c \u70ed\u533a \u201d \u3002 \u8be5\u9879 \u76ee\u7684 \u7814\u7a76 \u76ee\u6807 \u4e4b\u4e00 \u662f \u5c06 \u4eba\u7c7b \u6ce8\u610f \u6ce8\u610f\u529b \u56fe \u4e0e \u4ece \u7ecf\u8fc7 \u8bad\u7ec3 \u7ecf\u8fc7\u8bad\u7ec3 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u578b \u83b7\u5f97 \u7684 \u6ce8\u610f \u6ce8\u610f\u529b \u56fe \u8fdb\u884c \u6bd4\u8f83 \u3002 \u9996\u5148 \uff0c \u4e86\u89e3 \u5b83\u4eec \u662f\u5426 \u76f8\u4f3c \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u66f4\u52a0 \u4fe1\u4efb \u4eba\u5de5 \u6a21\u578b \u3002 \u5176\u6b21 \uff0c \u4e86\u89e3 \u4ece \u4eba\u7c7b \u9a7e\u9a76 \u4e2d \u83b7\u5f97 \u7684 \u6ce8\u610f \u6ce8\u610f\u529b \u56fe \u662f\u5426 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u6539\u8fdb \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u578b \u7684 \u8bad\u7ec3 \u3002 \u6b63\u5982 \u6211\u4eec \u5df2\u7ecf \u63d0\u5230 \u7684 \uff0c \u5728 \u8fd9\u4e2a \u9879\u76ee \u4e2d \uff0c \u9a7e\u9a76 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e CARLA \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u6a21\u62df \u9a7e\u9a76 \u6570\u636e \u5fc5\u987b \u7531 \u5916\u90e8 \u5b9e\u4f53 \u63d0\u4f9b \uff0c \u5982 Cloning - DCB \u9879\u76ee \u6280\u672f \u62a5\u544a WP1 \u4efb\u52a1 3 \u4e2d \u6240 \u6307\u5b9a \u3002 \u63d0\u4f9b \u670d\u52a1 \u7684 \u5916\u90e8 \u5b9e\u4f53 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u5305\u62ec \uff1a \u6839\u636e CVC \u5efa\u7acb \u7684 \u53c2\u6570 \u8fdb\u884c \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u7684 \u9009\u62e9 \u6839\u636e CVC \u5236\u5b9a \u7684 \u89c4\u8303 \u63d0\u4f9b \u6240 \u9700 \u7684 \u6570\u636e \uff08 \u56fe\u50cf \u3001 \u6ce8\u610f \u6ce8\u610f\u529b \u5730\u56fe \u3001 \u8f66\u8f86 \u91cc\u7a0b \u3001 \u7535\u56fe \u8111\u7535\u56fe \u7b49 \uff09 \u3002 \u63d0\u4f9b \u6570\u636e \u63d0\u4f9b\u6570\u636e \u6536\u96c6 \u6240 \u9700 \u7684 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u548c \u4eba\u5458 \u3002 \u8d1f\u8d23 \u9075\u5b88 LOPD \u5173\u4e8e \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \u6570\u636e \u7684 \u89c4\u5b9a \uff0c \u53ca\u65f6 \u901a\u77e5 \u4ed6\u4eec \u5e76 \u5f81\u5f97 \u4ed6\u4eec \u7684 \u540c\u610f \u3002 \u9274\u4e8e \u673a\u5668 \u5b66\u4e60 \u9879\u76ee \u4e2d \u6570\u636e \u7684 \u5173\u952e \u6027\u8d28 \uff0c \u8d1f\u8d23 \u63d0\u4f9b \u6b64 \u670d\u52a1 \u7684 \u5b9e\u4f53 \u4e0d\u80fd \u8f7b\u6613 \u9009\u62e9 \uff0c \u5e76\u4e14 \u5fc5\u987b \u6ee1\u8db3 \u67d0\u4e9b \u8981\u6c42 \u3002 \u8fd9\u4e9b \u8981\u6c42 \u7684 \u80cc\u666f \u3001 \u5b9a\u4e49 \u548c \u7406\u7531 \u662f \u672c \u6587\u4ef6 \u7684 \u76ee\u7684 \u3002","title":"\u4ecb\u7ecd"},{"location":"walker/cloning_DCB/#_3","text":"CVC \u662f \u4e16\u754c \u77e5\u540d \u7684 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u62e5\u6709 \u8d85\u8fc7 27 \u5e74 \u7684 \u7ecf\u9a8c \uff0c 20 \u591a\u5e74 \u6765 \u662f \u552f\u4e00 \u7684 \u56fd\u5bb6 \u56fd\u5bb6\u7ea7 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \u3002 \u4ed6 \u7684 \u7814\u7a76 \u5de5\u4f5c \u53ca\u5176 \u5353\u8d8a \u8868\u73b0 \u5728 \u4ed6 \u7684 \u51fa\u7248 \u51fa\u7248\u7269 \u4e2d \u663e\u800c \u6613\u89c1 \u663e\u800c\u6613\u89c1 \u3002 \u6839\u636e CSIC 2023 \u5e74 \u7684 \u6392\u540d \uff0c \u5176 \u7814\u7a76 \u4eba\u5458 \u5e73\u5747 \u6bcf\u5e74 \u6709 100 \u540d \uff0c \u5176\u4e2d \u6709 4 \u540d \u7814\u7a76 \u4eba\u5458 \u8dfb\u8eab \u56fd\u5185 \u548c \u6d77\u5916 \u897f\u73ed\u7259 \u897f\u73ed\u7259\u4eba 2 , 000 \u540d \u6700 \u6709 \u5f71\u54cd \u5f71\u54cd\u529b \u7684 \u7814\u7a76 \u4eba\u5458 \u4e4b \u5217 \uff0c \u8be5 \u6392\u540d \u57fa\u4e8e \u8c37\u6b4c \u7684 H \u7d22\u5f15 \u5b66\u8005 \u5e76 \u8003\u8651 \u5230 \u6240\u6709 \u79d1\u5b66 \u5b66\u79d1 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u8fd9\u79cd \u5353\u8d8a \u5353\u8d8a\u6027 \uff0c CVC \u8981\u6c42 \u4e0e\u5176 \u5efa\u7acb \u5408\u540c \u5173\u7cfb \u7684 \u5b9e\u4f53 \u5bf9 \u7814\u7a76 \u548c \u4f20\u64ad \u5de5\u4f5c \u505a\u51fa \u540c\u7b49 \u7a0b\u5ea6 \u7684 \u627f\u8bfa \u3002 \u8981\u6c42 \u6b64 \u627f\u8bfa \u7684 \u65b9\u5f0f \u662f \u9075\u5b88 \u4e0b \u4e00\u8282 \u4e2d \u8be6\u8ff0 \u7684 \u8981\u6c42 \u3002","title":"\u5148\u524d \u7684 \u8003\u8651 \u56e0\u7d20"},{"location":"walker/cloning_DCB/#_4","text":"\u9884\u8ba1 \u5728 \u6570\u636e \u6536\u96c6 \u670d\u52a1 \u7684 \u6267\u884c \u8fc7\u7a0b \u4e2d \uff0c CVC \u548c \u63d0\u4f9b \u5b9e\u4f53 \u4e4b\u95f4 \u5c06 \u8fdb\u884c \u6709\u529b \u5f3a\u6709\u529b \u7684 \u4ea4\u4e92 \uff0c \u4ee5 \u5f00\u53d1 \u548c \u9a8c\u8bc1 \u89c4\u8303 \u548c \u9a7e\u9a76 \u573a\u666f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4f9b\u5e94 \u4f9b\u5e94\u5546 \u5b9e\u4f53 \u5fc5\u987b \u6ee1\u8db3 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8981\u6c42 \uff0c \u5206\u4e3a \uff1a \u6280\u672f \u8981\u6c42 \u529f\u80fd \u8981\u6c42 \u5236\u5b9a \u6280\u672f \u8981\u6c42 \u662f \u4e3a\u4e86 \u4fdd\u8bc1 \u670d\u52a1 \u63d0\u4f9b \u5b9e\u4f53 \u62e5\u6709 \u5fc5\u8981 \u7684 \u8d44\u6e90 \uff0c \u5305\u62ec \u6750\u6599 \u548c \u5408\u683c \u7684 \u4eba\u5458 \u3002 \u5b83\u4eec \u7684 \u5efa\u7acb \u4e5f \u662f \u4e3a\u4e86 \u201c \u517c\u5bb9 \u201d CVC \u548c \u63d0\u4f9b \u63d0\u4f9b\u5546 \u5b9e\u4f53 \u7684 \u5de5\u4f5c \u73af\u5883 \u3002 \u5efa\u7acb \u529f\u80fd \u8981\u6c42 \u662f \u4e3a\u4e86 \u4fc3\u8fdb CVC \u548c \u63d0\u4f9b \u5b9e\u4f53 \u4e4b\u95f4 \u7684 \u534f\u4f5c \u548c \u4ea4\u4e92 \uff0c \u8003\u8651 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u4ea4\u4e92 \u4ee5\u53ca \u5de5\u4f5c \u7406\u5ff5 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u3002 \u8bc4\u4f30 \u6807\u51c6 \u7528\u4e8e \u5728 \u7b26\u5408 \u8981\u6c42 \u7b26\u5408\u8981\u6c42 \u7684 \u5b9e\u4f53 \u4e2d \u5efa\u7acb \u6392\u540d \uff0c \u4ee5 \u9009\u62e9 \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \u3002","title":"\u8981\u6c42"},{"location":"walker/cloning_DCB/#_5","text":"\u62e5\u6709 \u4e00\u4e2a \u7269\u7406 \u6a21\u62df \u6c7d\u8f66 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u7684 \u201c \u9a7e\u9a76 \u9a7e\u9a76\u8231 \u201d \u3002 \u5728 \u8fd9\u4e2a \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4e2d \uff0c \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u5fc5\u987b \u80fd\u591f \u5728 \u6a21\u62df \u7684 3D \u52a8\u6001 \u73af\u5883 \u4e2d \u9a7e\u9a76 \u3002 \u4e58\u5ba2 \u8231 \u5fc5\u987b \u5b89\u88c5 \u5728 \u79fb\u52a8 \u5e73\u53f0 \u4e0a \uff0c \u4e0e \u663e\u793a \u663e\u793a\u5668 \u540c\u6b65 \uff0c \u6a21\u62df \u771f\u5b9e \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u4f53\u9a8c \uff08 \u52a0\u901f \u3001 \u5236\u52a8 \u3001 \u8f6c\u5f2f \u3001 \u4e8b\u6545 \u548c \u5730\u5f62 \u89c4\u5219 \u4e0d\u89c4\u5219 \uff09 \uff0c \u4ee5 \u54cd\u5e94 \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6267\u884c \u7684 \u64cd\u4f5c \u3002 \u4f7f\u7528 \u7684 \u4eff\u771f \u8f6f\u4ef6 \u5fc5\u987b \u662f CARLA \uff0c \u7248\u672c 0.9 . 14 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6a21\u62df \u6a21\u62df\u5668 \u5fc5\u987b \u7269\u7406 \u663e\u793a \u81f3\u5c11 120 \u00ba \u7684 \u6c34\u5e73 \u89c6\u91ce \uff08 HFOV \uff09 \uff0c \u5206\u5e03 \u5728 \u591a\u4e2a \u5c4f\u5e55 \u4e0a \uff0c \u6a21\u62df \u771f\u5b9e \u8f66\u8f86 \u7684 \u9a7e\u9a76 \u4f53\u9a8c \u3002 \u6a21\u62df \u6a21\u62df\u5668 \u8fd8 \u5fc5\u987b \u663e\u793a \u4e24\u4e2a \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u5916\u90e8 \u540e\u89c6 \u540e\u89c6\u955c \u7684 \u89c6\u56fe \uff08 \u5728 \u65c5\u6e38 \u6e38\u4e1a \u65c5\u6e38\u4e1a \u4e2d\u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \uff09 \u3002 \u4e0e \u6a21\u62df \u6a21\u62df\u5668 \u7684 \u9a7e\u9a76 \u4f1a\u8bae \u5fc5\u987b \u7528 Carla \u7684 \u201c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u201d \u5f55\u5236 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u79bb\u7ebf \u64ad\u653e \uff0c \u4ee5 \u63d0\u53d6 \u7531\u4e8e \u8ba1\u7b97 \u65f6\u95f4 \u95ee\u9898 \u800c \u65e0\u6cd5 \u5728 \u73b0\u573a \u83b7\u5f97 \u7684 \u4fe1\u606f \u3002 \u62e5\u6709 \u91c7\u6837 \u9891\u7387 \u81f3\u5c11 \u4e3a 50Hz \u7684 \u773c\u52a8 \u8ffd\u8e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u4e3a \u6bcf\u4e2a \u6837\u672c \u63d0\u4f9b \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u89c6\u89d2 \u7684 \u56fe\u50cf \u4ee5\u53ca \u76f8\u5bf9 \u4e8e \u8be5 \u56fe\u50cf \u7684 \u5750\u6807 \uff0c \u6307\u793a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6240 \u6ce8\u89c6 \u7684 \u56fe\u50cf \u533a\u57df \u3002 \u77b3\u5b54 \u6269\u5f20 \u7684 \u6d4b\u91cf \u3002","title":"\u6280\u672f \u8981\u6c42"},{"location":"walker/cloning_DCB/#_6","text":"CARLA \u4e2d\u8981 \u8003\u8651 \u7684 \u573a\u666f \u5c06 \u7531 CVC \u63d0\u4f9b \u6216\u7ecf \u5176 \u6279\u51c6 \u3002 \u8981 \u8003\u8651 \u7684 \u4eba\u7c7b \u53f8\u673a \u7684 \u6982\u51b5 \u5c06 \u4e0e CVC \u8fbe\u6210 \u4e00\u81f4 \u3002 \u5bf9\u4e8e CVC \uff0c \u670d\u52a1 \u4e0d\u4f1a \u201c \u95ed\u95e8 \u201d \u63d0\u4f9b \uff0c CVC \u5de5\u4f5c \u4f5c\u4eba \u4eba\u5458 \u5de5\u4f5c\u4eba\u5458 \u53ef\u80fd \u4f1a \u5728 \u63d0\u4f9b \u670d\u52a1 \u671f\u95f4 \u5728\u573a \uff08 \u5982\u679c CVC \u8ba4\u4e3a \u6709 \u5fc5\u8981 \uff09 \u3002 \u5c06 \u6309\u7167 \u5546\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u53ec\u5f00 \u4f1a\u8bae \uff0c \u5bf9 \u670d\u52a1 \u7684 \u63d0\u4f9b \u60c5\u51b5 \u8fdb\u884c \u76d1\u7763 \u3002 \u8fd8 \u5177\u6709 \u4e2d\u95f4 \u6570\u636e \u636e\u4f20 \u4f20\u8f93 \u6570\u636e\u4f20\u8f93 \u3002","title":"\u529f\u80fd \u8981\u6c42"},{"location":"walker/cloning_DCB/#100","text":"\u53ea\u6709 \u7b26\u5408 \u4e0a\u8ff0 \u8981\u6c42 \u7684 \u5b9e\u4f53 \u624d\u80fd \u7533\u8bf7 \u672c\u6b21 \u7535\u8bdd \u4f1a\u8bae \u7535\u8bdd\u4f1a \u7535\u8bdd\u4f1a\u8bae \u3002 \u5982\u679c \u6709 \u591a\u4e2a \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \uff0c \u5c06 \u8bc4\u4f30 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \u4ee5 \u9009\u51fa \u83b7\u80dc \u80dc\u8005 \u83b7\u80dc\u8005 \uff1a \u6839\u636e \u591a\u5e74 \u7684 \u7b26\u5408 \u6280\u672f \u8981\u6c42 \u7684 \u9879\u76ee \u7ecf\u9a8c \uff08 \u57fa\u4e8e \u6a21\u62df \u7684 \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6570\u636e \u91c7\u96c6 \uff0c \u4e0d \u8003\u8651 \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u4e0e \u8f66\u8f86 \u53c2\u6570 \u548c \u6a21\u62df \u73af\u5883 \u53ca\u65f6 \u540c\u6b65 \uff09 \uff0c \u6700\u591a \u53ef \u5206\u914d 10 \u4e2a\u70b9 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u516c\u5f0f \uff1a $ $ P1 = \\ frac { AP } { maximo ( APMax , KAP ) } \\ times 10 $ $ APMax : \u8003\u8651 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \u7684 \u6700\u5927 \u5e74\u6570 \u3002 AP : \u5019\u9009 \u5b9e\u4f53 \u63a5\u53d7 \u8bc4\u4f30 \u7684 \u5e74\u6570 \u3002 KAP = 10 \uff1a \u671f\u671b \u7684 \u6700\u4f4e \u7ecf\u9a8c \u5e74\u6570 \u3002 \u6839\u636e \u591a\u5e74 \u4f7f\u7528 CARLA \u6a21\u62df \u6a21\u62df\u5668 \u83b7\u53d6 \u4e0e \u4eba\u7c7b \u9a7e\u9a76 \u76f8\u5173 \u6570\u636e \u7684 \u7ecf\u9a8c \uff0c \u6700\u591a \u53ef \u5206\u914d 50 \u4e2a\u70b9 \u3002 \u5c31\u662f \u5c31\u662f\u8bf4 \u4e5f\u5c31\u662f\u8bf4 \uff0c \u4f7f\u7528 \u4e0e CARLA \u8fde\u63a5 \u5e76 \u7531 \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u64cd\u4f5c \u7684 \u201c \u9a7e\u9a76 \u9a7e\u9a76\u8231 \u201d \uff0c \u5e76 \u63d0\u4f9b \u6a21\u62df \u771f\u5b9e \u73af\u5883 \u4e2d \u79fb\u52a8 \u7684 \u771f\u5b9e \u8f66\u8f86 \u7684 \u7269\u7406 \u53cd\u9988 \uff1a $ $ P2 = \\ frac { AC } { maximo ( ACMax , KAC ) } \\ times 50 $ $ ACMax : \u8003\u8651 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \u7684 \u6700\u5927 \u5e74\u6570 \u3002 AC \uff1a \u5019\u9009 \u5b9e\u4f53 \u63a5\u53d7 \u8bc4\u4f30 \u7684 \u5e74\u6570 \u3002 KAC = 4 : \u671f\u671b \u7684 \u6700\u4f4e \u7ecf\u9a8c \u5e74\u6570 \u3002 \u6700 \u591a 25 \u4e2a \u53ef \u5206\u914d \u70b9 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u6536\u96c6 \u4e2d \u4f30\u8ba1 \u5305\u542b \u7684 \u4eba\u7c7b \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6570\u91cf \uff08 \u7ed9\u5b9a \u9884\u7b97 \uff09 \uff0c \u5047\u8bbe \u6bcf\u4e2a \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u82b1\u8d39 \u5c0f\u65f6 \u534a\u5c0f\u65f6 \u7684 \u6a21\u62df \u6a21\u62df\u5668 \u65f6\u95f4 \uff08 \u5373 \uff0c \u4e0d \u8ba1\u7b97 \u4e0e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u4e92\u52a8 \u6240 \u9700 \u7684 \u51c6\u5907 \u5de5\u4f5c \uff09 \u6a21\u62df \u6a21\u62df\u5668 \uff09 \uff1a $ $ P3 = \\ frac { CH } { maximo ( CHMax , KCH ) } \\ times 25 $ $ CHMax : \u8003\u8651 \u6240\u6709 \u5b9e\u4f53 \u7684 \u6700\u5927 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u6570\u91cf \u3002 \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \u3002 CH : \u63a5\u53d7 \u8bc4\u4f30 \u7684 \u5019\u9009 \u5b9e\u4f53 \u7684 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u6570\u91cf \u3002 KCH = 15 : \u6700\u5c11 \u53f8\u673a \u4eba\u6570 \u3002 \u6839\u636e \u60a8 \u5728 \u8fc7\u53bb 5 \u5e74 \u4e2d \u53c2\u4e0e \u7684 Horizo \u6846\u67b6 \u5185 \u7684 \u6b27\u6d32 \u9879\u76ee \u6570\u91cf \uff0c \u6700\u591a \u53ef \u5206\u914d 5 \u5206 \uff0c \u5177\u4f53 \u516c\u5f0f \u5982\u4e0b \uff1a $ $ P4 = \\ frac { PH } { maximo ( 1 , PHMax ) } \\ times 5 $ $ PHMax : \u8003\u8651 \u5230 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \uff0c \u5176 \u53c2\u4e0e \u7684 Horizo 2020 \u548c Horizo Europe \u9879\u76ee \u7684 \u6700\u5927 \u6570\u91cf \u3002 PH : \u63a5\u53d7 \u8bc4\u4f30 \u7684 \u5019\u9009 \u5b9e\u4f53 \u53c2\u4e0e \u7684 Horizo 2020 \u548c Horizo Europe \u9879\u76ee \u7684 \u6570\u91cf \u3002 \u6839\u636e \u6240 \u63d0\u4f9b \u7684 \u7ecf\u6d4e \u62a5\u4ef7 \uff0c \u6839\u636e \u4ee5\u4e0b \u516c\u5f0f \uff0c \u6700\u591a \u53ef \u5206\u914d 5 \u5206 \uff1a $ $ P5 = \\ frac { maximo ( 1 , PFmax - OF ) } { maximo ( OFmax , OFmin ) } \\ times 5 $ $ OFmax : \u8003\u8651 \u5230 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \u7684 \u6700\u9ad8 \u7ecf\u6d4e \u62a5\u4ef7 \u3002 OFmin : \u8003\u8651 \u5230 \u6240\u6709 \u5019\u9009 \u5b9e\u4f53 \u7684 \u6700\u4f4e \u7ecf\u6d4e \u62a5\u4ef7 \u3002 OF : \u53d7 \u8bc4\u4f30 \u5019\u9009 \u5b9e\u4f53 \u7684 \u7ecf\u6d4e \u62a5\u4ef7 \u3002 \u8003\u8651 \u5230 \u6240 \u63d0\u4ea4 \u5b9e\u4f53 \u7684 \u79d1\u5b66 \u6280\u672f \u79d1\u5b66\u6280\u672f \u51fa\u7248 \u51fa\u7248\u7269 \u4e0e \u514b\u9686 - DCB \u9879\u76ee \u7684 \u76f8\u5173 \u76f8\u5173\u6027 \u548c \u5173\u7cfb \uff0c \u5c06 \u8003\u8651 \u7ed9\u4e88 0 \u81f3 5 \u5206 \u7684 \u5206\u6570 \u3002 \u6211\u4eec \u5c06 \u8fd9\u4e2a \u5206\u6570 \u79f0\u4e3a P6 \u3002 \u5b9e\u4f53 \u5fc5\u987b \u83b7\u5f97 \u6700\u4f4e \u5206\u6570 70 \u5206\u624d \u6709 \u8d44\u683c \u83b7\u5f97 \u5408\u540c \uff0c \u5373 \uff1a P1 + P2 + P3 + P4 + P5 + P6 \u2265 70 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \uff0c \u6bcf\u4e2a \u5019\u9009 \u5b9e\u4f53 \u6709 \u8d23\u4efb \u4ee5 \u5b8c\u6574 \u7684 \u65b9\u5f0f \u5448\u73b0 \u4f46 \u65b9\u5f0f \u7b80\u6d01 \u4e14 \u9a8c\u8bc1 \u53ef\u9a8c\u8bc1 \uff0c CVC \u8ba1\u7b97 \u90e8\u5206 \u5206\u6570 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u672a \u63d0\u4ea4 \u7684 \u4fe1\u606f \u5c06 \u4e0d\u4e88 \u8003\u8651 \u4e0d\u4e88\u8003\u8651 \u3002","title":"\u8bc4\u4ef7 \u6807\u51c6 \uff08 \u6ee1\u5206 100 \u5206 \uff09"},{"location":"walker/cloning_DCB/#_7","text":"\u5408\u540c \u9884\u7b97 \u4e3a 45 , 000 \u6b27\u5143 \uff08 \u4e0d \u542b \u589e\u503c \u589e\u503c\u7a0e \uff09 \uff0c \u8003\u8651 \u53ef\u80fd \u8fdb\u884c \u6700 \u591a + 10% \u7684 \u4fee\u6539 \u3002 \u5408\u540c \u5fc5\u987b \u5728 \u6388\u4e88 \u540e \u6700 \u591a 5 \u4e2a \u6708 \u5185 \u6267\u884c \u3002","title":"\u5408\u540c \u9884\u7b97"},{"location":"walker/cloning_DCB/#_8","text":"\u81ea \u8981\u7ea6 \u5728 CVC \u7f51\u7ad9 \u4e0a \u53d1\u5e03 \u4e4b\u65e5 \u4e4b\u65e5\u8d77 \uff0c \u8be5 \u8981\u7ea6 \u5c06 \u6301\u7eed 10 \u4e2a \u65e5\u5386 \u65e5 \u3002 \u5019\u9009 \u9009\u4eba \u5019\u9009\u4eba \u5c06 \u4f7f\u7528 SERV20230016 \u4f5c\u4e3a \u63cf\u8ff0 \u5c06 \u5176 \u5f55\u53d6 \u901a\u77e5 \u901a\u77e5\u4e66 \u53d1\u9001 \u9001\u81f3 \u53d1\u9001\u81f3 \u94fe\u63a5 \u3002","title":"\u62a5\u540d \u622a\u6b62 \u65e5\u671f"}]}
\ 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 \u8fd0\u884c \u5165\u95e8 \u793a\u4f8b \u540e \u53ef\u4ee5 \u6309 \u81ea\u5df1 \u559c\u6b22 \u7684 \u987a\u5e8f \u968f\u610f \u9605\u8bfb \u3002 \u5165\u95e8 \u793a\u4f8b \u4e0b\u8f7d \u94fe\u63a5 \u4e2d \u7684 software / carla _ 0.9 . 15 \u4e2d \u7684 \u6240\u6709 \u6587\u4ef6 \u5e76 \u89e3\u538b \uff1b \u8fd0\u884c WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 CarlaUE4 . exe \u542f\u52a8 \u573a\u666f \uff0c \u8fdb\u5165 \u573a\u666f \u540e \u6309 W \u3001 S \u3001 A \u3001 D \u79fb\u52a8 \u573a\u666f \u89c6\u89d2 \uff1b \u4f7f\u7528 Python37 / python . exe \u8fd0\u884c \u811a\u672c generate _ traffic . py \u548c python manual _ control . py \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u5e76 \u624b\u52a8 \u63a7\u5236 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u3002 \u6ce8\u610f \u5982\u679c \u5bf9 \u6587\u6863 \u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u53ef\u4ee5 \u5728 \u672c \u6587\u6863 \u7684 \u6e90\u7801 \u4ed3\u5e93 \u4e2d \u7684 Issues \u9875\u9762 \u8fdb\u884c \u63d0\u95ee \u6216\u8005 \u63d0\u4ea4 Pull Request \u76f4\u63a5 \u4fee\u6539 \u6587\u6863 \u3002 \u7b80\u4ecb \u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \uff0c \u4ecb\u7ecd \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u793a\u4f8b \u2014 Carla \u7ecf\u5178 \u793a\u4f8b \u4e3b\u9898 \u57fa\u7840 \u2014 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \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 \u5f00\u53d1 \u2014 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \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 \u548c SUMO \u534f\u540c \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u534f\u540c \u4eff\u771f Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u884c\u4eba \u884c\u4eba \u5bfc\u822a \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u8bbe\u7f6e \u52a8\u753b \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u8bbe\u7f6e \u52a8\u753b \u884c\u4eba \u89c6\u89c9 \u2014 \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u4eff\u771f \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u884c\u4eba \u5efa\u6a21 \u2014 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u5bf9 \u4eba \u8fdb\u884c \u5efa\u6a21 \u9ad8\u7ea7 \u6982\u5ff5 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \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 Carla \u4ee3\u7406 \u2014 \u4ee3\u7406 \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 Carla \u8bbe\u7f6e \u2014 Carla \u53c2\u6570 \u914d\u7f6e \u8bbe\u7f6e Carla \u6a21\u62df \u6a21\u62df\u5668 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u2014 \u5728 \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u4e2d \u73a9\u6e38 \u6e38\u620f \u73a9\u6e38\u620f \u65f6 \u4f7f\u7528 \u7684 \u6309\u952e \u7ed1\u5b9a \u65e0 \u663e\u793a \u663e\u793a\u5c4f \u8fd0\u884c Carla \u5e76 \u9009\u62e9 GPU \u2014 \u4f7f\u7528 \u672a \u63d2 \u5728 \u5c4f\u5e55 \u4e0a \u7684 GPU \u6765 \u6e32\u67d3 Carla \u7684 \u684c\u9762 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u2014 \u4e0b\u8f7d \u6750\u8d28 \u5e76 \u5c06 \u5176 \u94fe\u63a5 \u5230 \u6211\u4eec \u7684 \u8f66\u8f86 \uff0c \u4ee5 \u83b7\u5f97 \u66f4 \u903c\u771f \u7684 \u8f66\u6f06 \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 \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 \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 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5f00\u53d1 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u2014 \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b \u2014 \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 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \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 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \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 \u2014 \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5 \u57fa\u51c6 \u6d4b\u8bd5 \u9a7e\u9a76 \u57fa\u51c6 \u2014 \u7528\u4e8e \u8bc4\u4f30 \u9a7e\u9a76 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u4ee3\u7406 \uff09 \u5e76 \u83b7\u53d6 \u6709\u5173 \u5176 \u6027\u80fd \u7684 \u6307\u6807 \u57fa\u51c6 \u6027\u80fd \u2014 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784 \u2014 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u6d4b\u8bd5 \u4ee3\u7406 \u2014 \u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u2014 \u7528\u4e8e \u6839\u636e \u4ee3\u7406 \u5728 \u57fa\u51c6 \u6d4b\u8bd5 \u671f\u95f4 \u6267\u884c \u7684 \u64cd\u4f5c \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u6458\u8981 \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 \u4ea4\u901a \u573a\u666f \u2014 \u57fa\u4e8e Carla \u4ea4\u901a \u573a\u666f \u5b9a\u4e49 \u548c \u6267\u884c \u5f15\u64ce 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 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 \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 CarSim \u96c6\u6210 \u2014 \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 PTV - Vissim \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u534f\u540c \u4eff\u771f 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 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \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 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u2014 \u57fa\u672c \u7684 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u5730\u7406 \u7a7a\u95f4 \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u2014 \u5c06 3D \u5730\u7406 \u7a7a\u95f4 \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u5f15\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u8d21\u732e \u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u5176\u4ed6 RoadRunner \u2014 \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario \u2014 \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u865a\u5e7b \u5f15\u64ce \u2014 \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u6559\u7a0b Blender \u624b\u518c \u2014 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u6587\u4ef6 \u8bf4\u660e \u2014 \u8bf4\u660e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u5404\u4e2a \u6587\u4ef6 \u7684 \u4f5c\u7528 \u5f85 \u505a \u5217\u8868 \u2014 \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u53c2\u8003 Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u8d44\u6e90 \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \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 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6","title":"\u9996\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 \u8fd0\u884c \u5165\u95e8 \u793a\u4f8b \u540e \u53ef\u4ee5 \u6309 \u81ea\u5df1 \u559c\u6b22 \u7684 \u987a\u5e8f \u968f\u610f \u9605\u8bfb \u3002","title":"Carla \u6587\u6863"},{"location":"#_1","text":"\u4e0b\u8f7d \u94fe\u63a5 \u4e2d \u7684 software / carla _ 0.9 . 15 \u4e2d \u7684 \u6240\u6709 \u6587\u4ef6 \u5e76 \u89e3\u538b \uff1b \u8fd0\u884c WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 CarlaUE4 . exe \u542f\u52a8 \u573a\u666f \uff0c \u8fdb\u5165 \u573a\u666f \u540e \u6309 W \u3001 S \u3001 A \u3001 D \u79fb\u52a8 \u573a\u666f \u89c6\u89d2 \uff1b \u4f7f\u7528 Python37 / python . exe \u8fd0\u884c \u811a\u672c generate _ traffic . py \u548c python manual _ control . py \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \u5e76 \u624b\u52a8 \u63a7\u5236 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u3002 \u6ce8\u610f \u5982\u679c \u5bf9 \u6587\u6863 \u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u53ef\u4ee5 \u5728 \u672c \u6587\u6863 \u7684 \u6e90\u7801 \u4ed3\u5e93 \u4e2d \u7684 Issues \u9875\u9762 \u8fdb\u884c \u63d0\u95ee \u6216\u8005 \u63d0\u4ea4 Pull Request \u76f4\u63a5 \u4fee\u6539 \u6587\u6863 \u3002","title":"\u5165\u95e8 \u793a\u4f8b"},{"location":"#_2","text":"\u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \uff0c \u4ecb\u7ecd \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u793a\u4f8b \u2014 Carla \u7ecf\u5178 \u793a\u4f8b","title":"\u7b80\u4ecb "},{"location":"#_3","text":"\u57fa\u7840 \u2014 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \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 \u5f00\u53d1 \u2014 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c","title":"\u4e3b\u9898"},{"location":"#_4","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 \u548c SUMO \u534f\u540c \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u534f\u540c \u4eff\u771f Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b","title":"\u4ea4\u901a"},{"location":"#_5","text":"\u884c\u4eba \u5bfc\u822a \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u8bbe\u7f6e \u52a8\u753b \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u8bbe\u7f6e \u52a8\u753b \u884c\u4eba \u89c6\u89c9 \u2014 \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u4eff\u771f \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u884c\u4eba \u5efa\u6a21 \u2014 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u5bf9 \u4eba \u8fdb\u884c \u5efa\u6a21","title":"\u884c\u4eba"},{"location":"#_6","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \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 Carla \u4ee3\u7406 \u2014 \u4ee3\u7406 \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 Carla \u8bbe\u7f6e \u2014 Carla \u53c2\u6570 \u914d\u7f6e \u8bbe\u7f6e Carla \u6a21\u62df \u6a21\u62df\u5668 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u2014 \u5728 \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u4e2d \u73a9\u6e38 \u6e38\u620f \u73a9\u6e38\u620f \u65f6 \u4f7f\u7528 \u7684 \u6309\u952e \u7ed1\u5b9a \u65e0 \u663e\u793a \u663e\u793a\u5c4f \u8fd0\u884c Carla \u5e76 \u9009\u62e9 GPU \u2014 \u4f7f\u7528 \u672a \u63d2 \u5728 \u5c4f\u5e55 \u4e0a \u7684 GPU \u6765 \u6e32\u67d3 Carla \u7684 \u684c\u9762 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u2014 \u4e0b\u8f7d \u6750\u8d28 \u5e76 \u5c06 \u5176 \u94fe\u63a5 \u5230 \u6211\u4eec \u7684 \u8f66\u8f86 \uff0c \u4ee5 \u83b7\u5f97 \u66f4 \u903c\u771f \u7684 \u8f66\u6f06 \u3002","title":"\u9ad8\u7ea7 \u6982\u5ff5"},{"location":"#_7","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 \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 \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 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"#_8","text":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u2014 \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b \u2014 \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 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \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 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \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 \u2014 \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5","title":"\u81ea\u5b9a\u4e49 \u5f00\u53d1"},{"location":"#_9","text":"\u9a7e\u9a76 \u57fa\u51c6 \u2014 \u7528\u4e8e \u8bc4\u4f30 \u9a7e\u9a76 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u4ee3\u7406 \uff09 \u5e76 \u83b7\u53d6 \u6709\u5173 \u5176 \u6027\u80fd \u7684 \u6307\u6807 \u57fa\u51c6 \u6027\u80fd \u2014 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784 \u2014 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u6d4b\u8bd5 \u4ee3\u7406 \u2014 \u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u2014 \u7528\u4e8e \u6839\u636e \u4ee3\u7406 \u5728 \u57fa\u51c6 \u6d4b\u8bd5 \u671f\u95f4 \u6267\u884c \u7684 \u64cd\u4f5c \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u6458\u8981","title":"\u57fa\u51c6 \u6d4b\u8bd5"},{"location":"#_10","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 \u4ea4\u901a \u573a\u666f \u2014 \u57fa\u4e8e Carla \u4ea4\u901a \u573a\u666f \u5b9a\u4e49 \u548c \u6267\u884c \u5f15\u64ce 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 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 \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 CarSim \u96c6\u6210 \u2014 \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 PTV - Vissim \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u534f\u540c \u4eff\u771f 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 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \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 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u2014 \u57fa\u672c \u7684 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u5730\u7406 \u7a7a\u95f4 \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u2014 \u5c06 3D \u5730\u7406 \u7a7a\u95f4 \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u5f15\u5165 \u865a\u5e7b \u5f15\u64ce","title":"\u751f\u6001\u7cfb\u7edf"},{"location":"#_11","text":"\u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898","title":"\u6e90\u4ee3\u7801 \u7f16\u8bd1"},{"location":"#_12","text":"\u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357","title":"\u8d21\u732e"},{"location":"#_13","text":"RoadRunner \u2014 \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario \u2014 \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u865a\u5e7b \u5f15\u64ce \u2014 \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u6559\u7a0b Blender \u624b\u518c \u2014 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u6587\u4ef6 \u8bf4\u660e \u2014 \u8bf4\u660e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u5404\u4e2a \u6587\u4ef6 \u7684 \u4f5c\u7528 \u5f85 \u505a \u5217\u8868 \u2014 \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd","title":"\u5176\u4ed6"},{"location":"#_14","text":"Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u8d44\u6e90 \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \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 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6","title":"\u53c2\u8003"},{"location":"CarlaUE4/","text":"CarlaUE4 \u76ee\u5f55 \u4f9d\u8d56 \u4f9d\u8d56\u56fe \uff1a","title":"CarlaUE4"},{"location":"CarlaUE4/#carlaue4","text":"\u76ee\u5f55 \u4f9d\u8d56 \u4f9d\u8d56\u56fe \uff1a","title":"CarlaUE4"},{"location":"adv_agents/","text":"Carla \u4ee3\u7406 Carla \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ee3\u7406 \u3002 \u4ee3\u7406 \u811a\u672c \u6982\u8ff0 \u89c4\u5212 \u4e0e \u63a7\u5236 \u4ee3\u7406 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u4ee3\u7406 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u4ee3\u7406 \u4ee3\u7406 \u811a\u672c \u6982\u8ff0 Carla \u4ee3\u7406 \u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u89c4\u5212 \u548c \u63a7\u5236 \u548c \u4ee3\u7406 \u884c\u4e3a \u3002 \u89c4\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 \u8def\u5f84 \u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u8def\u5f84 \u70b9 \u3002 \u8def\u5f84 \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 \u4ee3\u7406 \u884c\u4e3a basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u91ce\u86ee \u3002 \u5b9e\u73b0 \u4e00\u4e2a \u4ee3\u7406 \u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u4ee3\u7406 \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 \u4ee3\u7406 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u4ee3\u7406 \u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u4ee3\u7406 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u4ee3\u7406 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u4ee3\u7406 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u4ee3\u7406 \u7c7b\u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u4ee3\u7406 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u4ee3\u7406 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 \u4ee3\u7406 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u4ee3\u7406 \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 \u4ee3\u7406 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u4ee3\u7406 \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 \u4ee3\u7406 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u4ee3\u7406 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u8def\u5f84 \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 \u4ee3\u7406 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u4ee3\u7406 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive \u884c\u4e3a \u7c7b\u578b \u884c\u4e3a \u4ee3\u7406 \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 \u5343\u7c73 / \u5c0f\u65f6 \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 30 \u5343\u7c73 / \u5c0f\u65f6 \u4e14 speed _ lim _ dist \u4e3a 10 \u5343\u7c73 / \u5c0f\u65f6 \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u5343\u7c73 / \u5c0f\u65f6 \uff09 \u3002 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 # \u4ee3\u7406 \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 \u4ee3\u7406 Carla \u4ee3\u7406 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u4ee3\u7406 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u4ee3\u7406 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u65e0\u7a77 \u65e0\u7a77\u7684 \u3002 \u6bcf\u4e2a \u4ee3\u7406 \u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 __ init __ \u548c \u8fd0\u884c \u6b65 run _ step \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 : 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 \u4ee3\u7406 \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 \u4ee3\u7406 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"Carla \u4ee3\u7406"},{"location":"adv_agents/#carla","text":"Carla \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ee3\u7406 \u3002 \u4ee3\u7406 \u811a\u672c \u6982\u8ff0 \u89c4\u5212 \u4e0e \u63a7\u5236 \u4ee3\u7406 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u4ee3\u7406 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u4ee3\u7406","title":"Carla \u4ee3\u7406"},{"location":"adv_agents/#_1","text":"Carla \u4ee3\u7406 \u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u89c4\u5212 \u548c \u63a7\u5236 \u548c \u4ee3\u7406 \u884c\u4e3a \u3002","title":"\u4ee3\u7406 \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 \u8def\u5f84 \u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u8def\u5f84 \u70b9 \u3002 \u8def\u5f84 \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":"\u89c4\u5212 \u4e0e \u63a7\u5236 "},{"location":"adv_agents/#_3","text":"basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u91ce\u86ee \u3002","title":"\u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u4ee3\u7406 \u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u4ee3\u7406 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u4ee3\u7406 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u4ee3\u7406 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u4ee3\u7406 \u7c7b\u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u4ee3\u7406 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u4ee3\u7406 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 \u4ee3\u7406 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u4ee3\u7406 \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 \u4ee3\u7406 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u4ee3\u7406 \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 \u4ee3\u7406 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u4ee3\u7406 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u8def\u5f84 \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 \u4ee3\u7406 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u4ee3\u7406 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive","title":"\u5b9e\u73b0 \u4e00\u4e2a \u4ee3\u7406 "},{"location":"adv_agents/#_5","text":"\u884c\u4e3a \u4ee3\u7406 \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 \u5343\u7c73 / \u5c0f\u65f6 \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 30 \u5343\u7c73 / \u5c0f\u65f6 \u4e14 speed _ lim _ dist \u4e3a 10 \u5343\u7c73 / \u5c0f\u65f6 \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u5343\u7c73 / \u5c0f\u65f6 \uff09 \u3002 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 # \u4ee3\u7406 \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 \u4ee3\u7406 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u4ee3\u7406 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u4ee3\u7406 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u65e0\u7a77 \u65e0\u7a77\u7684 \u3002 \u6bcf\u4e2a \u4ee3\u7406 \u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 __ init __ \u548c \u8fd0\u884c \u6b65 run _ step \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 : 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 \u4ee3\u7406 \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 \u4ee3\u7406 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"\u521b\u5efa \u4ee3\u7406 "},{"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 \u6d4b\u8bd5 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 \u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 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 -- \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 \u7b97\u6cd5 \u6027\u80fd \u6d4b\u8bd5 \u7b97\u6cd5 \u6027\u80fd \u6392\u884c \u6392\u884c\u699c \u3002 \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 \u6d4b\u8bd5 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 \u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 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","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","title":"Carla \u6027\u80fd \u62a5\u544a "},{"location":"adv_benchmarking/#_7","text":"\u7b97\u6cd5 \u6027\u80fd \u6392\u884c \u6392\u884c\u699c \u3002 \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":"\u7b97\u6cd5 \u6027\u80fd \u6d4b\u8bd5 "},{"location":"adv_cesium/","text":"\u503e\u659c \u6a21\u578b \u5bfc\u5165 Carla 1 . \u4e0b\u8f7d \u5e76 \u89e3\u538b Cesium for Unreal \u63d2\u4ef6 \u5230 CarlaUE \u5f15\u64ce \u7684 plugins \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff1a 2 . \u5c06 \u63d2\u4ef6 \u7684 BuildId \u4fee\u6539 \u4e0e CarlaUE \u5f15\u64ce \u7684 BuildId \u4e00\u81f4 \u3002 \u5f15\u64ce \u7684 BuildId \u5728 \u5982\u4e0b \u8def\u5f84 \uff1a \u9700 \u4fee\u6539 \u7684 BuildId 3 . \u672c\u5730 \u6d4b\u8bd5 \u8fd8 \u9700\u8981 \u4fee\u6539 \u5176\u4ed6 \u51e0\u4e2a \u5185\u7f6e \u63d2\u4ef6 \u7684 BuildId \u4e5f \u8981 \u4e0e \u5f15\u64ce \u7684 \u4e00\u81f4 \u3002 \u6709 \u5982\u4e0b \u51e0\u4e2a \u5730\u65b9 \uff1a carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Experimental \\ Landmass \\ Binaries \\ Win64 carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Experimental \\ Water \\ Binaries \\ Win64 carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Editor \\ BlueprintMaterialTextureNodes \\ Binaries \\ Win64 4 . \u5728 CarlaUE \u4e2d \u6dfb\u52a0 \u63d2\u4ef6 \u6dfb\u52a0 \u5b8c\u6210 \u540e \u91cd\u542f \u5f15\u64ce \u3002 5 . \u6dfb\u52a0 \u63d2\u4ef6 \u5bf9\u8c61 \u5230 \u573a\u666f \u4e2d , \u914d\u7f6e \u53c2\u6570 \u548c \u6a21\u578b \u8def\u5f84 \uff1a esiumGeoreference \u8bbe\u7f6e \u4e3a \uff1a 28.235238 , 112.877178 , 0 Source \u8bbe\u7f6e \u4e3a File : / / / D : / ssd / model / tileset . json \u3002 \u6ce8\u610f \u4ece \u94fe\u63a5 \u4e2d \u7684 map \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u4e0b\u8f7d \u4e2d \u7535 \u8f6f\u4ef6 \u8f6f\u4ef6\u56ed _ cesium _ model . zip \u5e76 \u89e3\u538b \u3002 \u8fd9\u91cc \u6d4b\u8bd5 \u7528 \u7684 \u662f \u672c\u5730 \u8def\u5f84 \uff0c \u4e5f \u53ef\u4ee5 \u7528 \u9759\u6001 \u8d44\u6e90 \u670d\u52a1 \u3002 6 . \u5c06 Trees . umap \u4e2d \u653e\u5230 \u672c\u5730 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff0c \u83dc\u5355 \u4e2d \u70b9\u51fb \u7a97\u53e3 - > \u5173\u5361 \uff0c \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d\u5c06 Trees . umap \u62d6\u8fdb \u5bfc\u5f39 \u51fa \u754c\u9762 \uff0c \u7136\u540e \u53f3\u952e Trees \u5173\u5361 \uff0c \u9009\u62e9 \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 - > \u56fa\u5b9a \u52a0\u8f7d \u3002 7 . \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u9009\u4e2d Cesium3DTileset \uff0c \u5c06 Cesium \u4e2d \u7684 Mobility \u4fee\u6539 \u4e3a \u53ef \u79fb\u52a8 \u3002 8 . \u6dfb\u52a0 \u5149\u6e90 DirectionalLight \u3001 ExponentialHeightFog \u3001 SkyAtmosphere \u3001 SkyLight \u3002 9 . \u6a21\u578b \u5728 CarlaUE \u4e2d \u7684 \u573a\u666f \u6548\u679c \u503e\u659c \u6444\u5f71 \u7531 \u503e\u659c \u6444\u5f71 osgb \u8f6c\u6362 \u6362\u6210 \u8f6c\u6362\u6210 3Dtiles \u683c\u5f0f \uff08 cesium \u53ef \u76f4\u63a5 \u4f7f\u7528 \uff09 \u3002 \u53c2\u8003 Cesium for Unreal \u5feb\u901f \u5165\u95e8 Cesium for Unreal \u52a0\u8f7d \u672c\u5730 \u503e\u659c \u6444\u5f71","title":"\u503e\u659c \u6a21\u578b \u5bfc\u5165 Carla"},{"location":"adv_cesium/#carla","text":"1 . \u4e0b\u8f7d \u5e76 \u89e3\u538b Cesium for Unreal \u63d2\u4ef6 \u5230 CarlaUE \u5f15\u64ce \u7684 plugins \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff1a 2 . \u5c06 \u63d2\u4ef6 \u7684 BuildId \u4fee\u6539 \u4e0e CarlaUE \u5f15\u64ce \u7684 BuildId \u4e00\u81f4 \u3002 \u5f15\u64ce \u7684 BuildId \u5728 \u5982\u4e0b \u8def\u5f84 \uff1a \u9700 \u4fee\u6539 \u7684 BuildId 3 . \u672c\u5730 \u6d4b\u8bd5 \u8fd8 \u9700\u8981 \u4fee\u6539 \u5176\u4ed6 \u51e0\u4e2a \u5185\u7f6e \u63d2\u4ef6 \u7684 BuildId \u4e5f \u8981 \u4e0e \u5f15\u64ce \u7684 \u4e00\u81f4 \u3002 \u6709 \u5982\u4e0b \u51e0\u4e2a \u5730\u65b9 \uff1a carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Experimental \\ Landmass \\ Binaries \\ Win64 carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Experimental \\ Water \\ Binaries \\ Win64 carla _ unreal \\ unreal \\ Engine \\ Plugins \\ Editor \\ BlueprintMaterialTextureNodes \\ Binaries \\ Win64 4 . \u5728 CarlaUE \u4e2d \u6dfb\u52a0 \u63d2\u4ef6 \u6dfb\u52a0 \u5b8c\u6210 \u540e \u91cd\u542f \u5f15\u64ce \u3002 5 . \u6dfb\u52a0 \u63d2\u4ef6 \u5bf9\u8c61 \u5230 \u573a\u666f \u4e2d , \u914d\u7f6e \u53c2\u6570 \u548c \u6a21\u578b \u8def\u5f84 \uff1a esiumGeoreference \u8bbe\u7f6e \u4e3a \uff1a 28.235238 , 112.877178 , 0 Source \u8bbe\u7f6e \u4e3a File : / / / D : / ssd / model / tileset . json \u3002 \u6ce8\u610f \u4ece \u94fe\u63a5 \u4e2d \u7684 map \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u4e0b\u8f7d \u4e2d \u7535 \u8f6f\u4ef6 \u8f6f\u4ef6\u56ed _ cesium _ model . zip \u5e76 \u89e3\u538b \u3002 \u8fd9\u91cc \u6d4b\u8bd5 \u7528 \u7684 \u662f \u672c\u5730 \u8def\u5f84 \uff0c \u4e5f \u53ef\u4ee5 \u7528 \u9759\u6001 \u8d44\u6e90 \u670d\u52a1 \u3002 6 . \u5c06 Trees . umap \u4e2d \u653e\u5230 \u672c\u5730 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff0c \u83dc\u5355 \u4e2d \u70b9\u51fb \u7a97\u53e3 - > \u5173\u5361 \uff0c \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d\u5c06 Trees . umap \u62d6\u8fdb \u5bfc\u5f39 \u51fa \u754c\u9762 \uff0c \u7136\u540e \u53f3\u952e Trees \u5173\u5361 \uff0c \u9009\u62e9 \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 - > \u56fa\u5b9a \u52a0\u8f7d \u3002 7 . \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u9009\u4e2d Cesium3DTileset \uff0c \u5c06 Cesium \u4e2d \u7684 Mobility \u4fee\u6539 \u4e3a \u53ef \u79fb\u52a8 \u3002 8 . \u6dfb\u52a0 \u5149\u6e90 DirectionalLight \u3001 ExponentialHeightFog \u3001 SkyAtmosphere \u3001 SkyLight \u3002 9 . \u6a21\u578b \u5728 CarlaUE \u4e2d \u7684 \u573a\u666f \u6548\u679c","title":"\u503e\u659c \u6a21\u578b \u5bfc\u5165 Carla"},{"location":"adv_cesium/#_1","text":"\u7531 \u503e\u659c \u6444\u5f71 osgb \u8f6c\u6362 \u6362\u6210 \u8f6c\u6362\u6210 3Dtiles \u683c\u5f0f \uff08 cesium \u53ef \u76f4\u63a5 \u4f7f\u7528 \uff09 \u3002","title":"\u503e\u659c \u6444\u5f71"},{"location":"adv_cesium/#_2","text":"Cesium for Unreal \u5feb\u901f \u5165\u95e8 Cesium for Unreal \u52a0\u8f7d \u672c\u5730 \u503e\u659c \u6444\u5f71","title":"\u53c2\u8003"},{"location":"adv_cpp_client/","text":"C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u8981 \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \uff0c \u60a8 \u9700\u8981 \u5b89\u88c5 make \u3002 \u5728 \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6784\u5efa Carla \uff0c \u5e76 \u6309\u7167 \u60a8 \u5e73\u53f0 \u7684 \u76f8\u5173 \u6784\u5efa \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u822a \u5230 Carla \u5b58\u50a8 \u5e93\u4e2d \u7684 Examples / CppClient \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u3002 \u60a8 \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u627e\u5230 \u4e00\u4e2a Makefile \u3002 \u8981 \u5728 Linux \u4e2d \u6784\u5efa \u5e76 \u8fd0\u884c \u5b83 \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u4e0b \u6267\u884c make run \u3002 \u5728 Windows \u4e2d \uff0c \u5728 \u540c\u4e00 \u76ee\u5f55 \u4e2d \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a CMakeLists . txt \u7684 \u6587\u4ef6 \uff0c \u5e76 \u6dfb\u52a0 \u6b64 \u6587\u4ef6 \u4e2d \u7684 \u5185\u5bb9 \uff0c \u7136\u540e \u8fd0\u884c cmake \u3002 \u8fd9\u4e2a C++ \u793a\u4f8b \u5c06 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u751f\u6210 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u5728 \u9500\u6bc1 \u548c \u7ec8\u6b62 \u8f66\u8f86 \u4e4b\u524d \u5bf9 \u5176 \u5e94\u7528 \u547d\u4ee4 \u3002 \u5305\u62ec \u76f8\u5173 \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u5bf9\u4e8e \u8fd9\u4e2a \u4f8b\u5b50 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u51e0\u4e2a \u4e0d\u540c \u7684 Carla \u7c7b \uff0c \u56e0\u6b64 \u6211\u4eec \u9700\u8981 \u5305\u542b Carla \u5e93\u4e2d \u7684 \u76f8\u5173 \u6587\u4ef6 \u5934\u6587\u4ef6 \uff0c \u5e76 \u5305\u542b \u6211\u4eec \u5c06 \u4f7f\u7528 \u7684 \u4efb\u4f55 \u6807\u51c6 \u5e93 \uff1a # include < iostream > # include < random > # include < sstream > # include < stdexcept > # include < string > # include < thread > # include < tuple > # include < carla / client / ActorBlueprint . h > # include < carla / client / BlueprintLibrary . h > # include < carla / client / Client . h > # include < carla / client / Map . h > # include < carla / client / Sensor . h > # include < carla / client / TimeoutException . h > # include < carla / client / World . h > # include < carla / geom / Transform . h > # include < carla / image / ImageIO . h > # include < carla / image / ImageView . h > # include < carla / sensor / data / Image . h > \u5c06 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5305\u62ec carla / client / Client . h \uff0c \u7136\u540e \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a ... # include < carla / client / Client . h > ... int main ( int argc , const char * argv [ ] ) { std : : string host ; uint16 _ t port ; std : : tie ( host , port ) = ParseArguments ( argc , argv ) ; ... / / \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a auto client = cc : : Client ( host , port ) ; client . SetTimeout ( 40s ) ; \u52a0\u8f7d \u5730\u56fe \u73b0\u5728 \u8ba9 \u6211\u4eec \u52a0\u8f7d \u4e00\u4e2a \u968f\u673a \u9009\u62e9 \u7684 \u5730\u56fe \uff1a / / \u521d\u59cb \u521d\u59cb\u5316 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 std : : mt19937 _ 64 rng ( ( std : : random _ device ( ) ) ( ) ) ; ... auto town _ name = RandomChoice ( client . GetAvailableMaps ( ) , rng ) ; std : : cout < < \" Loading world : \" < < town _ name < < std : : endl ; auto world = client . LoadWorld ( town _ name ) ; \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u5c06 \u83b7\u53d6 \u84dd \u56fe\u5e93 \uff0c \u8fc7\u6ee4 \u8f66\u8f86 \u5e76 \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u7684 \u8f66\u8f86 \u84dd\u56fe \uff1a auto blueprint _ library = world . GetBlueprintLibrary ( ) ; auto vehicles = blueprint _ library - > Filter ( \" vehicle \" ) ; auto blueprint = RandomChoice ( * vehicles , rng ) ; \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u627e\u5230 \u4e00\u4e2a \u4f4d\u7f6e \uff0c \u4ece \u5730\u56fe \u4e0a \u7684 \u751f\u6210 \u70b9 \u751f\u6210 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u83b7\u5f97 \u4e00\u4e2a \u6307\u5411 \u5730\u56fe \u5bf9\u8c61 \u7684 \u6307\u9488 \u5f15\u7528 \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u751f\u6210 \u70b9 \uff08 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u521d\u59cb \u521d\u59cb\u5316 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff09 \uff1a auto map = world . GetMap ( ) ; auto transform = RandomChoice ( map - > GetRecommendedSpawnPoints ( ) , rng ) ; \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \u548c \u751f\u6210 \u4f4d\u7f6e \uff0c \u6211\u4eec \u73b0\u5728 \u53ef\u4ee5 \u4f7f\u7528 world . SpawnActor ( ... ) \u65b9\u6cd5 \u751f\u6210 \u8f66\u8f86 \u3002 auto actor = world . SpawnActor ( blueprint , transform ) ; std : : cout < < \" Spawned \" < < actor - > GetDisplayId ( ) < < ' \\ n ' ; / / \u68c0\u7d22 \u6307\u5411 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u6307\u9488 auto vehicle = boost : : static _ pointer _ cast < cc : : Vehicle > ( actor ) ; \u5e94\u7528 \u63a7\u5236 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4f7f\u7528 ApplyControl ( ... ) \u65b9\u6cd5 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u4e00\u4e9b \u63a7\u5236 \u6765 \u79fb\u52a8 \u5b83 \uff1a cc : : Vehicle : : Control control ; control . throttle = 1.0 f ; vehicle - > ApplyControl ( control ) ; \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u91cd\u65b0 \u5b9a\u4f4d \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u5728 \u5730\u56fe \u4e0a \u770b\u5230 \u6211\u4eec \u65b0 \u751f\u6210 \u7684 \u8f66\u8f86 \uff1a auto spectator = world . GetSpectator ( ) ; / / \u8c03\u6574 \u53d8\u6362 \u6765\u770b transform . location + = 32.0 f * transform . GetForwardVector ( ) ; transform . location . z + = 2.0 f ; transform . rotation . yaw + = 180.0 f ; transform . rotation . pitch = - 15.0 f ; / / \u73b0\u5728 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53d8\u6362 spectator - > SetTransform ( transform ) ; \u6211\u4eec \u8fd8 \u5c06 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5173\u95ed \u4e4b\u524d \uff0c \u8ba9 \u8be5 \u8fc7\u7a0b \u4f11\u7720 10 \u79d2 \uff0c \u4ee5 \u89c2\u5bdf \u6a21\u62df \u8fc7\u7a0b \uff1a std : : this _ thread : : sleep _ for ( 10s ) ; \u5982\u679c \u60a8 \u5e0c\u671b \u5728 \u6267\u884c \u5176\u4ed6 \u547d\u4ee4 \u65f6 \u4fdd\u6301 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6253\u5f00 \uff0c \u8bf7 \u521b\u5efa \u4e00\u4e2a \u6e38\u620f \u5faa\u73af \u3002 \u73b0\u5728 \uff0c \u60a8 \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u4e00\u5f20 \u5730\u56fe \u5e76 \u751f\u6210 \u4e86 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u3002 \u4e3a\u4e86 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63a2\u7d22 C++ API \uff0c \u6784\u5efa Doxygen \u6587\u6863 \u5e76 \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 \u5b83 \u3002 \u8981 \u5728 Carla \u5b58\u50a8 \u5e93 \u4e4b\u5916 \u7684 \u53e6 \u4e00\u4e2a \u4f4d\u7f6e \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8bf7 \u7f16\u8f91 Makefile \u7684 \u524d 5 \u884c \uff0c \u4ee5 \u5f15\u7528 / build \u76ee\u5f55 \u548c Carla \u6784\u5efa \u4f4d\u7f6e \u7684 \u6b63\u786e \u4f4d\u7f6e \uff1a CARLADIR = $ ( CURDIR ) / .. / .. BUILDDIR = $ ( CURDIR ) / build BINDIR = $ ( CURDIR ) / bin INSTALLDIR = $ ( CURDIR ) / libcarla - install TOOLCHAIN = $ ( CURDIR ) / ToolChain . cmake","title":"C++ \u5ba2\u6237\u7aef \u793a\u4f8b"},{"location":"adv_cpp_client/#c","text":"\u8981 \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \uff0c \u60a8 \u9700\u8981 \u5b89\u88c5 make \u3002 \u5728 \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6784\u5efa Carla \uff0c \u5e76 \u6309\u7167 \u60a8 \u5e73\u53f0 \u7684 \u76f8\u5173 \u6784\u5efa \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u822a \u5230 Carla \u5b58\u50a8 \u5e93\u4e2d \u7684 Examples / CppClient \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u3002 \u60a8 \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u627e\u5230 \u4e00\u4e2a Makefile \u3002 \u8981 \u5728 Linux \u4e2d \u6784\u5efa \u5e76 \u8fd0\u884c \u5b83 \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u4e0b \u6267\u884c make run \u3002 \u5728 Windows \u4e2d \uff0c \u5728 \u540c\u4e00 \u76ee\u5f55 \u4e2d \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a CMakeLists . txt \u7684 \u6587\u4ef6 \uff0c \u5e76 \u6dfb\u52a0 \u6b64 \u6587\u4ef6 \u4e2d \u7684 \u5185\u5bb9 \uff0c \u7136\u540e \u8fd0\u884c cmake \u3002 \u8fd9\u4e2a C++ \u793a\u4f8b \u5c06 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u751f\u6210 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u5728 \u9500\u6bc1 \u548c \u7ec8\u6b62 \u8f66\u8f86 \u4e4b\u524d \u5bf9 \u5176 \u5e94\u7528 \u547d\u4ee4 \u3002","title":"C++ \u5ba2\u6237\u7aef \u793a\u4f8b"},{"location":"adv_cpp_client/#_1","text":"\u5bf9\u4e8e \u8fd9\u4e2a \u4f8b\u5b50 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u51e0\u4e2a \u4e0d\u540c \u7684 Carla \u7c7b \uff0c \u56e0\u6b64 \u6211\u4eec \u9700\u8981 \u5305\u542b Carla \u5e93\u4e2d \u7684 \u76f8\u5173 \u6587\u4ef6 \u5934\u6587\u4ef6 \uff0c \u5e76 \u5305\u542b \u6211\u4eec \u5c06 \u4f7f\u7528 \u7684 \u4efb\u4f55 \u6807\u51c6 \u5e93 \uff1a # include < iostream > # include < random > # include < sstream > # include < stdexcept > # include < string > # include < thread > # include < tuple > # include < carla / client / ActorBlueprint . h > # include < carla / client / BlueprintLibrary . h > # include < carla / client / Client . h > # include < carla / client / Map . h > # include < carla / client / Sensor . h > # include < carla / client / TimeoutException . h > # include < carla / client / World . h > # include < carla / geom / Transform . h > # include < carla / image / ImageIO . h > # include < carla / image / ImageView . h > # include < carla / sensor / data / Image . h >","title":"\u5305\u62ec \u76f8\u5173 \u7684 \u5934\u6587\u4ef6"},{"location":"adv_cpp_client/#c_1","text":"\u5305\u62ec carla / client / Client . h \uff0c \u7136\u540e \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a ... # include < carla / client / Client . h > ... int main ( int argc , const char * argv [ ] ) { std : : string host ; uint16 _ t port ; std : : tie ( host , port ) = ParseArguments ( argc , argv ) ; ... / / \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a auto client = cc : : Client ( host , port ) ; client . SetTimeout ( 40s ) ;","title":"\u5c06 C++ \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1\u5668"},{"location":"adv_cpp_client/#_2","text":"\u73b0\u5728 \u8ba9 \u6211\u4eec \u52a0\u8f7d \u4e00\u4e2a \u968f\u673a \u9009\u62e9 \u7684 \u5730\u56fe \uff1a / / \u521d\u59cb \u521d\u59cb\u5316 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 std : : mt19937 _ 64 rng ( ( std : : random _ device ( ) ) ( ) ) ; ... auto town _ name = RandomChoice ( client . GetAvailableMaps ( ) , rng ) ; std : : cout < < \" Loading world : \" < < town _ name < < std : : endl ; auto world = client . LoadWorld ( town _ name ) ;","title":"\u52a0\u8f7d \u5730\u56fe"},{"location":"adv_cpp_client/#_3","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u5c06 \u83b7\u53d6 \u84dd \u56fe\u5e93 \uff0c \u8fc7\u6ee4 \u8f66\u8f86 \u5e76 \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u7684 \u8f66\u8f86 \u84dd\u56fe \uff1a auto blueprint _ library = world . GetBlueprintLibrary ( ) ; auto vehicles = blueprint _ library - > Filter ( \" vehicle \" ) ; auto blueprint = RandomChoice ( * vehicles , rng ) ; \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u627e\u5230 \u4e00\u4e2a \u4f4d\u7f6e \uff0c \u4ece \u5730\u56fe \u4e0a \u7684 \u751f\u6210 \u70b9 \u751f\u6210 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u83b7\u5f97 \u4e00\u4e2a \u6307\u5411 \u5730\u56fe \u5bf9\u8c61 \u7684 \u6307\u9488 \u5f15\u7528 \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u751f\u6210 \u70b9 \uff08 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u521d\u59cb \u521d\u59cb\u5316 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff09 \uff1a auto map = world . GetMap ( ) ; auto transform = RandomChoice ( map - > GetRecommendedSpawnPoints ( ) , rng ) ; \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \u548c \u751f\u6210 \u4f4d\u7f6e \uff0c \u6211\u4eec \u73b0\u5728 \u53ef\u4ee5 \u4f7f\u7528 world . SpawnActor ( ... ) \u65b9\u6cd5 \u751f\u6210 \u8f66\u8f86 \u3002 auto actor = world . SpawnActor ( blueprint , transform ) ; std : : cout < < \" Spawned \" < < actor - > GetDisplayId ( ) < < ' \\ n ' ; / / \u68c0\u7d22 \u6307\u5411 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u6307\u9488 auto vehicle = boost : : static _ pointer _ cast < cc : : Vehicle > ( actor ) ;","title":"\u968f\u673a \u9009\u62e9 \u4e00\u8f86\u8f66"},{"location":"adv_cpp_client/#_4","text":"\u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4f7f\u7528 ApplyControl ( ... ) \u65b9\u6cd5 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u4e00\u4e9b \u63a7\u5236 \u6765 \u79fb\u52a8 \u5b83 \uff1a cc : : Vehicle : : Control control ; control . throttle = 1.0 f ; vehicle - > ApplyControl ( control ) ; \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u91cd\u65b0 \u5b9a\u4f4d \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u5728 \u5730\u56fe \u4e0a \u770b\u5230 \u6211\u4eec \u65b0 \u751f\u6210 \u7684 \u8f66\u8f86 \uff1a auto spectator = world . GetSpectator ( ) ; / / \u8c03\u6574 \u53d8\u6362 \u6765\u770b transform . location + = 32.0 f * transform . GetForwardVector ( ) ; transform . location . z + = 2.0 f ; transform . rotation . yaw + = 180.0 f ; transform . rotation . pitch = - 15.0 f ; / / \u73b0\u5728 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53d8\u6362 spectator - > SetTransform ( transform ) ; \u6211\u4eec \u8fd8 \u5c06 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5173\u95ed \u4e4b\u524d \uff0c \u8ba9 \u8be5 \u8fc7\u7a0b \u4f11\u7720 10 \u79d2 \uff0c \u4ee5 \u89c2\u5bdf \u6a21\u62df \u8fc7\u7a0b \uff1a std : : this _ thread : : sleep _ for ( 10s ) ; \u5982\u679c \u60a8 \u5e0c\u671b \u5728 \u6267\u884c \u5176\u4ed6 \u547d\u4ee4 \u65f6 \u4fdd\u6301 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6253\u5f00 \uff0c \u8bf7 \u521b\u5efa \u4e00\u4e2a \u6e38\u620f \u5faa\u73af \u3002 \u73b0\u5728 \uff0c \u60a8 \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u4e00\u5f20 \u5730\u56fe \u5e76 \u751f\u6210 \u4e86 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u3002 \u4e3a\u4e86 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63a2\u7d22 C++ API \uff0c \u6784\u5efa Doxygen \u6587\u6863 \u5e76 \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 \u5b83 \u3002 \u8981 \u5728 Carla \u5b58\u50a8 \u5e93 \u4e4b\u5916 \u7684 \u53e6 \u4e00\u4e2a \u4f4d\u7f6e \u6784\u5efa C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8bf7 \u7f16\u8f91 Makefile \u7684 \u524d 5 \u884c \uff0c \u4ee5 \u5f15\u7528 / build \u76ee\u5f55 \u548c Carla \u6784\u5efa \u4f4d\u7f6e \u7684 \u6b63\u786e \u4f4d\u7f6e \uff1a CARLADIR = $ ( CURDIR ) / .. / .. BUILDDIR = $ ( CURDIR ) / build BINDIR = $ ( CURDIR ) / bin INSTALLDIR = $ ( CURDIR ) / libcarla - install TOOLCHAIN = $ ( CURDIR ) / ToolChain . cmake","title":"\u5e94\u7528 \u63a7\u5236"},{"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 \u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \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 \u540e\u7eed \u6b65\u9aa4 \u5206\u6790 \u95ee\u9898 \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 \u4f7f\u7528 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 \u5206\u6790 UOpenDriveToMap : : GenerateTile ( ) \u751f\u6210 \u6bcf \u4e00\u4e2a \u74e6\u7247 \uff0c \u8c03\u7528 GenerateAll ( ) \u51fd\u6570 \uff0c \u8fdb\u884c \u9053\u8def \u7f51\u683c \u3001 \u8f66\u9053 \u7ebf \u3001 \u751f\u6210 \u70b9 \u3001 \u5730\u5f62 \u3001 \u6570\u76ee \u4f4d\u7f6e \u3001 \u751f\u6210 \u5b8c\u6210 \u7b49 \u6b65\u9aa4 \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 \u79fb\u9664 void UOpenDriveToMap : : GenerateTile ( ) \u51fd\u6570 \u4e2d \u7684 / / RemoveFromRoot ( ) ; \u8bed\u53e5 \uff0c \u8be5 \u8bed\u53e5 \u6e05\u7406 FilePath \u53d8\u91cf \u5bfc\u81f4 \u4e0b \u4e00\u6b21 \u74e6\u7247 \u751f\u6210 \u65f6 FilePath \u53d8\u91cf \u4e71\u7801 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u5927 \u5730\u56fe \u53ea \u751f\u6210 \u4e00\u4e2a \u74e6\u7247 \u7684 \u95ee\u9898 \u3002 \u53c2\u8003 \uff1a UE \u4e2d \u7684 Commandlet \u89e3\u8bfb \u3002","title":"Adv digital twin"},{"location":"adv_digital_twin/#_1","text":"\u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \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 \u540e\u7eed \u6b65\u9aa4 \u5206\u6790 \u95ee\u9898 \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/#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":"\u4f7f\u7528 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":"UOpenDriveToMap : : GenerateTile ( ) \u751f\u6210 \u6bcf \u4e00\u4e2a \u74e6\u7247 \uff0c \u8c03\u7528 GenerateAll ( ) \u51fd\u6570 \uff0c \u8fdb\u884c \u9053\u8def \u7f51\u683c \u3001 \u8f66\u9053 \u7ebf \u3001 \u751f\u6210 \u70b9 \u3001 \u5730\u5f62 \u3001 \u6570\u76ee \u4f4d\u7f6e \u3001 \u751f\u6210 \u5b8c\u6210 \u7b49 \u6b65\u9aa4 \u3002","title":"\u5206\u6790 "},{"location":"adv_digital_twin/#_9","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 \u79fb\u9664 void UOpenDriveToMap : : GenerateTile ( ) \u51fd\u6570 \u4e2d \u7684 / / RemoveFromRoot ( ) ; \u8bed\u53e5 \uff0c \u8be5 \u8bed\u53e5 \u6e05\u7406 FilePath \u53d8\u91cf \u5bfc\u81f4 \u4e0b \u4e00\u6b21 \u74e6\u7247 \u751f\u6210 \u65f6 FilePath \u53d8\u91cf \u4e71\u7801 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u5927 \u5730\u56fe \u53ea \u751f\u6210 \u4e00\u4e2a \u74e6\u7247 \u7684 \u95ee\u9898 \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 \u5bf9\u7167 \u536b\u661f \u5730\u56fe \uff08 \u6bd4\u5982 \u767e\u5ea6 \u5730\u56fe \u7684 \u536b\u661f \u5730\u56fe \uff09 \u8fdb\u884c \u7ed8\u5236 \uff1a \u901a\u8fc7 \u5b9e\u666f \u5730\u56fe \u6570\u51fa \u697c \u7684 \u5c42\u6570 \uff1a \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 \u624b\u673a APP \u8fdb\u884c \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u4e3a\u4e86 \u5728 \u79fb\u52a8 \u73af\u5883 \u4e0b \u8fdb\u884c \u65b9\u4fbf \u7684 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \uff0c \u4e0b\u8f7d \u624b\u673a \u8f6f\u4ef6 \u673a\u8f6f\u4ef6 \u624b\u673a\u8f6f\u4ef6 StreetComplete \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 \u5bf9\u7167 \u536b\u661f \u5730\u56fe \uff08 \u6bd4\u5982 \u767e\u5ea6 \u5730\u56fe \u7684 \u536b\u661f \u5730\u56fe \uff09 \u8fdb\u884c \u7ed8\u5236 \uff1a \u901a\u8fc7 \u5b9e\u666f \u5730\u56fe \u6570\u51fa \u697c \u7684 \u5c42\u6570 \uff1a","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_edit_openstreetmap/#app","text":"\u4e3a\u4e86 \u5728 \u79fb\u52a8 \u73af\u5883 \u4e0b \u8fdb\u884c \u65b9\u4fbf \u7684 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \uff0c \u4e0b\u8f7d \u624b\u673a \u8f6f\u4ef6 \u673a\u8f6f\u4ef6 \u624b\u673a\u8f6f\u4ef6 StreetComplete \u3002","title":"\u624b\u673a APP \u8fdb\u884c \u5730\u56fe\u7f16\u8f91"},{"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 - nullrhi \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u6570\u636e \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 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9\u5e94 \u4e00\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 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c GPU \u7684 \u6570\u91cf \u4e00\u6837 \u591a \u7684 \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 - nullrhi \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u6570\u636e \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 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9\u5e94 \u4e00\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 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c GPU \u7684 \u6570\u91cf \u4e00\u6837 \u591a \u7684 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4e09\u7ef4 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4e09\u7ef4 \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 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u5957 \u63a5\u5b57 \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 \uff08 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u63a7\u4ef6 \uff09 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u63a7\u4ef6 ( 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 \u6ce8\u610f \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 \u4eff\u771f \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 \u4eff\u771f \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 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u5957 \u63a5\u5b57 \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 \uff08 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u63a7\u4ef6 \uff09 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u63a7\u4ef6 ( 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 \u6ce8\u610f \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 \u4eff\u771f \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 \u4eff\u771f \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 \u8bb0\u5f55 \u6587\u4ef6 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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\u5236 \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 \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 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8bb0\u5f55 \u6587\u4ef6 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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\u5236 \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 \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 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e\u8005 "},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \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 \u4ee3\u7406 \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 \u670d\u52a1 \u670d\u52a1\u7aef \u7a97\u53e3 \u4f1a \u8fdb\u5165 \u9ed1\u5c4f \uff0c \u4f46\u662f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef pygame \u4f9d\u7136 \u4f1a \u6e32\u67d3 \u3002 \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 \u670d\u52a1 \u670d\u52a1\u7aef \u4e0d \u6e32\u67d3 \uff0c \u9ed1\u5c4f \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c pygame \u4f9d\u7136 \u4f1a \u6e32\u67d3 \uff0c pygame \u4e5f \u9700\u8981 \u4f7f\u7528 no - render \u8bbe\u7f6e \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 \u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \u800c \u53e6 \u4e00\u79cd \u5728 Carla \u5b98\u65b9 \u6587\u6863 \u4e2d\u672a \u88ab \u63d0\u53ca \u7684 \u65b9\u5f0f \u5c31\u662f -- nullrhi \u3002 \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u56fe\u5f62 \u5f62\u5b66 \u56fe\u5f62\u5b66 \u4e2d \uff0c RHI \uff08 Rendering Hardware Interface \uff09 \u662f \u4e00\u79cd \u786c\u4ef6 \u62bd\u8c61 \u5c42 \uff0c \u7528\u4e8e \u5c01\u88c5 \u4e0d\u540c \u56fe\u5f62 \u786c\u4ef6 \uff08 GPU \uff09 \u7684 \u5e95\u5c42 \u7ec6\u8282 \uff0c \u4f7f\u5f97 \u56fe\u5f62 \u6e32\u67d3 \u5f15\u64ce \u53ef\u4ee5 \u4e0e \u5404\u79cd \u4e0d\u540c \u7c7b\u578b \u7684 \u786c\u4ef6 \u534f\u540c \u540c\u5de5 \u5de5\u4f5c \u534f\u540c\u5de5\u4f5c \u3002 RHI \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u56fe\u5f62 \u8d44\u6e90 \u3001 \u6267\u884c \u6e32\u67d3 \u547d\u4ee4 \u7b49 \u5e95\u5c42 \u64cd\u4f5c \uff0c \u4f7f\u5f97 \u5f00\u53d1 \u5f00\u53d1\u8005 \u53ef\u4ee5 \u7f16\u5199 \u4e0e \u5177\u4f53 \u786c\u4ef6 \u65e0\u5173 \u7684 \u56fe\u5f62 \u6e32\u67d3 \u4ee3\u7801 \u3002 \u800c \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 -- nullrhi \u53c2\u6570 \u5219 \u662f \u4e00\u79cd \u7279\u6b8a \u7684 \u6a21\u5f0f \uff0c \u8868\u793a \u4f7f\u7528 Null Rendering Hardware Interface \uff0c \u5373\u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \u3002 \u5728 \u8fd9\u79cd \u6a21\u5f0f \u4e0b \uff0c Carla \u5c06 \u4e0d\u4f1a \u6267\u884c \u5b9e\u9645 \u7684 \u56fe\u5f62 \u6e32\u67d3 \u64cd\u4f5c \uff0c \u4ece\u800c \u51cf\u8f7b \u4e86 \u4e0e \u56fe\u5f62 \u76f8\u5173 \u7684 \u8ba1\u7b97 \u8d1f\u62c5 \u3002 \u8fd9 \u5bf9\u4e8e \u4e00\u4e9b \u7279\u6b8a \u7684 \u4eff\u771f \u573a\u666f \uff0c \u6bd4\u5982 \u9700\u8981 \u5728 \u540e\u53f0 \u8fd0\u884c \u4eff\u771f \u6216 \u8fdb\u884c \u6027\u80fd \u6d4b\u8bd5 \u65f6 \uff0c \u662f \u975e\u5e38 \u6709\u7528 \u7684 \u3002 \u4f7f\u7528 -- nullrhi \u53c2\u6570 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c manual _ control . py \u65f6 pygame \u9ed1\u5c4f \u3002 nullrhi \u53ea \u9002\u7528 \u4e8e \u591a GPU \u6a21\u5f0f \uff0c \u53ef\u4ee5 \u53ea\u6709 \u4e00\u4e2a GPU \u8fdb\u884c \u6e32\u67d3 \uff0c \u800c \u5176\u4ed6 GPU \u4f7f\u7528 nullrhi \u4e0d \u8fdb\u884c \u6e32\u67d3 \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":"Adv rendering options"},{"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 \u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \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 \u4ee3\u7406 \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 \u670d\u52a1 \u670d\u52a1\u7aef \u7a97\u53e3 \u4f1a \u8fdb\u5165 \u9ed1\u5c4f \uff0c \u4f46\u662f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef pygame \u4f9d\u7136 \u4f1a \u6e32\u67d3 \u3002 \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 \u670d\u52a1 \u670d\u52a1\u7aef \u4e0d \u6e32\u67d3 \uff0c \u9ed1\u5c4f \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c pygame \u4f9d\u7136 \u4f1a \u6e32\u67d3 \uff0c pygame \u4e5f \u9700\u8981 \u4f7f\u7528 no - render \u8bbe\u7f6e \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","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 "},{"location":"adv_rendering_options/#_9","text":"\u800c \u53e6 \u4e00\u79cd \u5728 Carla \u5b98\u65b9 \u6587\u6863 \u4e2d\u672a \u88ab \u63d0\u53ca \u7684 \u65b9\u5f0f \u5c31\u662f -- nullrhi \u3002 \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u56fe\u5f62 \u5f62\u5b66 \u56fe\u5f62\u5b66 \u4e2d \uff0c RHI \uff08 Rendering Hardware Interface \uff09 \u662f \u4e00\u79cd \u786c\u4ef6 \u62bd\u8c61 \u5c42 \uff0c \u7528\u4e8e \u5c01\u88c5 \u4e0d\u540c \u56fe\u5f62 \u786c\u4ef6 \uff08 GPU \uff09 \u7684 \u5e95\u5c42 \u7ec6\u8282 \uff0c \u4f7f\u5f97 \u56fe\u5f62 \u6e32\u67d3 \u5f15\u64ce \u53ef\u4ee5 \u4e0e \u5404\u79cd \u4e0d\u540c \u7c7b\u578b \u7684 \u786c\u4ef6 \u534f\u540c \u540c\u5de5 \u5de5\u4f5c \u534f\u540c\u5de5\u4f5c \u3002 RHI \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u56fe\u5f62 \u8d44\u6e90 \u3001 \u6267\u884c \u6e32\u67d3 \u547d\u4ee4 \u7b49 \u5e95\u5c42 \u64cd\u4f5c \uff0c \u4f7f\u5f97 \u5f00\u53d1 \u5f00\u53d1\u8005 \u53ef\u4ee5 \u7f16\u5199 \u4e0e \u5177\u4f53 \u786c\u4ef6 \u65e0\u5173 \u7684 \u56fe\u5f62 \u6e32\u67d3 \u4ee3\u7801 \u3002 \u800c \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 -- nullrhi \u53c2\u6570 \u5219 \u662f \u4e00\u79cd \u7279\u6b8a \u7684 \u6a21\u5f0f \uff0c \u8868\u793a \u4f7f\u7528 Null Rendering Hardware Interface \uff0c \u5373\u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 \u3002 \u5728 \u8fd9\u79cd \u6a21\u5f0f \u4e0b \uff0c Carla \u5c06 \u4e0d\u4f1a \u6267\u884c \u5b9e\u9645 \u7684 \u56fe\u5f62 \u6e32\u67d3 \u64cd\u4f5c \uff0c \u4ece\u800c \u51cf\u8f7b \u4e86 \u4e0e \u56fe\u5f62 \u76f8\u5173 \u7684 \u8ba1\u7b97 \u8d1f\u62c5 \u3002 \u8fd9 \u5bf9\u4e8e \u4e00\u4e9b \u7279\u6b8a \u7684 \u4eff\u771f \u573a\u666f \uff0c \u6bd4\u5982 \u9700\u8981 \u5728 \u540e\u53f0 \u8fd0\u884c \u4eff\u771f \u6216 \u8fdb\u884c \u6027\u80fd \u6d4b\u8bd5 \u65f6 \uff0c \u662f \u975e\u5e38 \u6709\u7528 \u7684 \u3002 \u4f7f\u7528 -- nullrhi \u53c2\u6570 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c manual _ control . py \u65f6 pygame \u9ed1\u5c4f \u3002 nullrhi \u53ea \u9002\u7528 \u4e8e \u591a GPU \u6a21\u5f0f \uff0c \u53ef\u4ee5 \u53ea\u6709 \u4e00\u4e2a GPU \u8fdb\u884c \u6e32\u67d3 \uff0c \u800c \u5176\u4ed6 GPU \u4f7f\u7528 nullrhi \u4e0d \u8fdb\u884c \u6e32\u67d3 \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":"\u7a7a \u6e32\u67d3 \u786c\u4ef6 \u63a5\u53e3 "},{"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 \u4f9d\u8d56 \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":"Adv rss"},{"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 \u4f9d\u8d56 \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 SUMO TraCI \u63a5\u53e3 \u6587\u6863 \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":"Adv sumo"},{"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 SUMO TraCI \u63a5\u53e3 \u6587\u6863","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 \u3002 \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 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5b9e\u65f6 \u65f6\u95f4 \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 \u3002 \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 \u6bd4\u5982 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u59cb\u7ec8 \u4e3a 1 \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 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \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 # \u8bbe\u7f6e \u4e3a \u53ef\u53d8 \u6b65\u957f world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 0 \u8868\u793a \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 2 \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 \u6b65 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 1 \u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / util / config . py \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 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 \u64ad\u653e \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\u65b0 \u64ad\u653e \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 \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 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \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 # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f 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 \u8fd9\u4e2a \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 PythonAPI / util / config . py \u811a\u672c \u3002 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 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u5e76 \u68c0\u7d22 \u8be5 \u8282\u62cd \u7684 \u5feb\u7167 \u3002 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u6bcf\u6b21 \u63a5\u6536 \u5230 \u65b0 \u5feb\u7167 \u65f6 \u8c03\u7528 \u5b83 \u3002 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":"Adv synchrony timestep"},{"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 \u3002 \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 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_2","text":"\u5b9e\u65f6 \u65f6\u95f4 \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 \u3002 \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 \u6bd4\u5982 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u59cb\u7ec8 \u4e3a 1 \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 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \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 # \u8bbe\u7f6e \u4e3a \u53ef\u53d8 \u6b65\u957f world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 0 \u8868\u793a \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 2 \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 \u6b65 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 1 \u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / util / config . py \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 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 \u64ad\u653e \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\u65b0 \u64ad\u653e \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 \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 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \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 # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f 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 \u8fd9\u4e2a \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 PythonAPI / util / config . py \u811a\u672c \u3002 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 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u5e76 \u68c0\u7d22 \u8be5 \u8282\u62cd \u7684 \u5feb\u7167 \u3002 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u6bcf\u6b21 \u63a5\u6536 \u5230 \u65b0 \u5feb\u7167 \u65f6 \u8c03\u7528 \u5b83 \u3002 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 \u4ee3\u7406 \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ee3\u7406 \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 \u4ee3\u7406 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 . \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 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 \u8def\u5f84 \u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u8def\u5f84 \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 \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u8def\u5f84 \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 \u8003\u8651 \u56e0\u7d20 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 \u884c\u4eba - \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f \u4e00\u4e2a \u4e0d \u9700\u8981 \u88ab \u9500\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1b \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u9500\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 \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # \u79bb \u82f1\u96c4 \u8f66\u8f86 \u8d85\u8fc7 2 \u516c\u91cc \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06\u4f1a \u4f11\u7720 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 20 \u7c73 \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":"Adv traffic manager"},{"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 \u4ee3\u7406 \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ee3\u7406 \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":"\u4ee3\u7406 \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 \u4ee3\u7406 \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":"\u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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/#_12","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":"\u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 "},{"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/#_13","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/#_14","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 \u8def\u5f84 \u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u8def\u5f84 \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 \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u8def\u5f84 \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/#_15","text":"","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 "},{"location":"adv_traffic_manager/#_16","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 \u884c\u4eba - \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 \u8003\u8651 \u56e0\u7d20 "},{"location":"adv_traffic_manager/#_17","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/#_18","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/#_19","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f \u4e00\u4e2a \u4e0d \u9700\u8981 \u88ab \u9500\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1b \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u9500\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/#_20","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/#_21","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/#_22","text":"","title":"\u8fd0\u884c \u591a\u4e2a \u4ea4\u901a\u7ba1\u7406 \u5668 "},{"location":"adv_traffic_manager/#_23","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/#_24","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/#_25","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/#_26","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/#_27","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/#_28","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/#_29","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/#_30","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 \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # \u79bb \u82f1\u96c4 \u8f66\u8f86 \u8d85\u8fc7 2 \u516c\u91cc \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06\u4f1a \u4f11\u7720 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 20 \u7c73 \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":"benchmark_creating/","text":"\u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u5c55\u793a \uff1a \u5982\u4f55 \u5b9a\u4e49 \u4e00\u4e2a \u5177\u6709 \u524d\u5411 \u7b56\u7565 \u7684 \u7b80\u5355 \u4ee3\u7406 \u5982\u4f55 \u5b9a\u4e49 \u4e00\u4e2a \u57fa\u672c \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u5b9a\u4e49 \u5b9a\u4e49 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u6784\u5efa \u5b9e\u9a8c \u9884\u671f \u7ed3\u679c \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u4e0e \u5176\u4ed6 \u4e24\u4e2a \u6a21\u5757 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u4ee3\u7406 \u6a21\u5757 \u662f \u53e6 \u4e00\u4e2a \u6a21\u5757 \uff08 \u5b9e\u9a8c \u5957\u4ef6 \uff09 \u4e2d \u6267\u884c \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8fd9 \u4e24\u4e2a \u6a21\u5757 \u90fd \u662f \u62bd\u8c61 \u62bd\u8c61\u7c7b \uff0c \u5fc5\u987b \u7531 \u7528\u6237 \u91cd\u65b0 \u5b9a\u4e49 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u6458\u5f55 \u662f \u5982\u4f55 \u5e94\u7528 \u9a7e\u9a76 \u57fa\u51c6 \u7684 \u793a\u4f8b \uff1b # \u6211\u4eec \u5b9e\u4f8b \u5316 \u4e86 \u4e00\u4e2a \u8f6c\u53d1 \u4ee3\u7406 \uff0c \u8fd9\u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u7b56\u7565 \uff0c # \u53ea \u9700 \u5c06 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u8bbe\u7f6e \u4e3a 0.9 \uff0c \u5c06 \u8f6c\u5411 \u8bbe\u7f6e \u4e3a \u96f6 agent = ForwardAgent ( ) # \u6211\u4eec \u5b9e\u4f8b \u5316 \u4e86 \u4e00\u4e2a \u5b9e\u9a8c \u5957\u4ef6 \u3002 # \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u4e00\u7ec4 \u5c06 \u5728 \u6b64 \u57fa\u51c6 \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u7684 \u5b9e\u9a8c \u3002 experiment _ suite = BasicExperimentSuite ( city _ name ) # \u73b0\u5728 \u5b9e\u9645 \u8fd0\u884c driving _ benchmark \u3002 # \u9664\u4e86 \u4ee3\u7406 \u548c \u5b9e\u9a8c \u5957\u4ef6 \u4e4b\u5916 \uff0c \u6211\u4eec \u8fd8 \u5e94\u8be5 \u53d1\u9001 \u57ce\u5e02 \u540d\u79f0 \uff08 Town01 \uff0c Town02 \uff09 \u65e5\u5fd7 run _ driving _ benchmark ( agent , experiment _ suite , city _ name , log _ name , continue _ experiment , host , port ) \u8fd9 \u6bb5 \u6458\u5f55 \u4e4b\u540e \uff0c \u6709 \u4e24\u4e2a \u7c7b \u9700\u8981 \u5b9a\u4e49 \u3002 ForwardAgent ( ) \u548c BasicExperimentSuite ( ) \u3002 \u4e4b\u540e \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u201c run _ driving _ benchmark \u201d \u51fd\u6570 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u6267\u884c \u6458\u8981 \u3001 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u5b58\u50a8 \u5728 json \u6587\u4ef6 \u4e2d \u6253\u5370 \u5e76\u6253\u5370 \u5230 \u5c4f\u5e55 \u4e0a \u3002 \u5b9a\u4e49 \u4ee3\u7406 \u88ab \u6d4b\u8bd5 \u7684 \u4ee3\u7406 \u5fc5\u987b \u7ee7\u627f \u57fa\u7c7b Agent \u3002 \u6211\u4eec \u5148 \u4ece \u6d3e\u751f \u4e00\u4e2a \u7b80\u5355 \u7684 \u8f6c\u53d1 \u4ee3\u7406 \u5f00\u59cb \uff1a from carla . agent . agent import Agent from carla . client import VehicleControl class ForwardAgent ( Agent ) : \u4e3a\u4e86 \u8bc4\u4f30 \u5176 \u6027\u80fd \uff0c ForwardAgent \u6d3e\u751f \u6d3e\u751f\u7c7b \u5fc5\u987b \u91cd\u65b0 \u5b9a\u4e49 run _ step \u51fd\u6570 \uff0c \u5982 \u4e0b\u9762 \u6458\u5f55 \u7684 \u90a3\u6837 \uff1a def run _ step ( self , measurements , sensor _ data , directions , target ) : \" \" \" \u5728 CARLA \u8f66\u8f86 \u4e2d \u8fd0\u884c \u63a7\u5236 \u6b65\u9aa4 \u7684 \u51fd\u6570 \u3002 \" \" \" control = VehicleControl ( ) control . throttle = 0.9 return control \u8be5 \u51fd\u6570 \u63a5\u6536 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u6d4b\u91cf \u503c \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ece CARLA \u6a21\u62df \u6a21\u62df\u5668 \u63a5\u6536 \u5230 \u7684 \u6574\u4e2a \u4e16\u754c \u72b6\u6001 \u3002 \u8fd9\u4e9b \u6d4b\u91cf \u503c \u5305\u542b \u4ee3\u7406 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u3001 \u52a8\u6001 \u5bf9\u8c61 \u4fe1\u606f \u7b49 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff1a \u6765\u81ea \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6d4b\u91cf \u6570\u636e \uff0c \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6216 RGB \u6444\u50cf \u6444\u50cf\u673a \u3002 \u65b9\u5411 \uff1a \u6765\u81ea \u9ad8\u7ea7 \u89c4\u5212 \u5668 \u7684 \u4fe1\u606f \u3002 \u5f53\u524d \uff0c \u89c4\u5212 \u5668 \u4ece \u4e0b\u5217 \u96c6\u5408 \u53d1\u9001 \u9ad8\u7ea7 \u547d\u4ee4 \uff1a \u76f4\u884c \u3001 \u53f3 \u884c \u3001 \u5de6 \u884c \u3001 \u65e0 \u884c \u3002 \u76ee\u6807 \u4f4d\u7f6e \uff1a \u76ee\u6807 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u6709 \u4e86 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \uff0c run _ step \u51fd\u6570 \u9884\u8ba1 \u4f1a \u8fd4\u56de \u4e00\u4e2a \u8f66\u8f86 \u63a7\u5236 \u6d88\u606f \uff0c \u5305\u542b \uff1a \u8f6c\u5411 \u503c \u3001 \u6cb9\u95e8 \u503c \u3001 \u5239\u8f66 \u503c \u7b49 \u3002 \u5b9a\u4e49 \u5b9e\u9a8c \u5957\u4ef6 \u8981 \u521b\u5efa \u5b9e\u9a8c \u5957\u4ef6 \u7c7b \uff0c \u60a8 \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u901a\u8fc7 \u7ee7\u627f ExperimentSuite \u57fa\u7c7b \u6765 \u521b\u5efa \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7c7b \u3002 \u5b9a\u4e49 \u8981 \u4f7f\u7528 \u7684 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u3002 \u6784\u5efa \u5b9e\u9a8c \u5bf9\u8c61 \u3002 \u5b9a\u4e49 \u5b9a\u4e49 \u7684 \u5b9e\u9a8c \u96c6 \u5fc5\u987b \u6d3e\u751f ExperimentSuite \u7c7b \uff0c \u5982 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u6240\u793a \uff1a from carla . agent _ benchmark . experiment import Experiment from carla . sensor import Camera from carla . settings import CarlaSettings from . experiment _ suite import ExperimentSuite class BasicExperimentSuite ( ExperimentSuite ) : \u5b9a\u4e49 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u7528\u6237 \u5fc5\u987b \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5929\u6c14 \u3002 \u5e94\u8be5 \u9009\u62e9 \u4e00\u7ec4 \u6d4b\u8bd5 \u5929\u6c14 \u548c \u4e00\u7ec4 \u8bad\u7ec3 \u5929\u6c14 \u3002 \u8fd9 \u88ab \u5b9a\u4e49 \u4e3a\u7c7b \u5c5e\u6027 \uff0c \u5982\u4e0b \u4f8b \u6240\u793a \uff1a @ property def train _ weathers ( self ) : return [ 1 ] @ property def test _ weathers ( self ) : return [ 1 ] \u6784\u5efa \u5b9e\u9a8c \u5b9e\u9a8c \u7531 \u4e00\u7ec4 \u59ff\u52bf \u5b9a\u4e49 \u7684 \u4efb\u52a1 \u7ec4\u6210 \u3002 \u8ba9 \u6211\u4eec \u4ece \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u57ce\u5e02 \u7684 \u59ff\u52bf \u5f00\u59cb \uff0c \u4ee5 Town01 \u4e3a\u4f8b \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u67e5\u770b \u6240\u6709 \u53ef\u80fd \u7684 \u4f4d\u7f6e \uff0c \u4e3a\u6b64 \uff0c \u5728 \u7ec8\u7aef \u4e2d \u8fd0\u884c CARLA \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u8fd0\u884c view _ start _ positions . py \uff1a python view _ start _ positions . py \u73b0\u5728 \u8ba9 \u6211\u4eec \u9009\u62e9 140 \u4f5c\u4e3a \u8d77\u59cb \u4f4d\u7f6e \uff0c 134 \u4f5c\u4e3a \u7ec8\u6b62 \u4f4d\u7f6e \u3002 \u8fd9 \u4e24\u4e2a \u4f4d\u7f6e \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 \uff1a python view _ start _ positions . py -- pos 140 , 134 -- no - labels \u6211\u4eec \u518d \u9009\u62e9 \u4e24\u4e2a \u59ff\u52bf \uff0c \u4e00\u4e2a \u7528\u4e8e \u76f4\u884c \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u7b80\u5355 \u8f6c\u5f2f \u3002 \u6b64\u5916 \uff0c \u6211\u4eec \u8fd8 \u4e3a Town02 \u9009\u62e9 \u4e09\u4e2a \u59ff\u52bf \uff1a \u56fe \uff1a \u6b64 \u57fa\u672c \u5b9e\u9a8c \u5957\u4ef6 \u793a\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u59ff\u52bf \u3002 \u59ff\u52bf \u662f \u76ee\u6807 \u5bfc\u5411 \u60c5\u8282 \u7684 \u5f00\u59cb \u548c \u7ed3\u675f \u4f4d\u7f6e \u7684 \u5143\u7ec4 \u3002 \u5f00\u59cb \u4f4d\u7f6e \u663e\u793a \u4e3a \u84dd\u8272 \uff0c \u7ed3\u675f \u4f4d\u7f6e \u663e\u793a \u4e3a \u7ea2\u8272 \u3002 \u5de6 \uff1a \u76f4\u7ebf \u59ff\u52bf \uff0c \u5176\u4e2d \u76ee\u6807 \u4e0e \u8d77\u59cb \u4f4d\u7f6e \u76f4\u7ebf \u8ddd\u79bb \u3002 \u4e2d \uff1a \u4e00\u4e2a \u8f6c\u5f2f \u60c5\u8282 \uff0c \u5176\u4e2d \u76ee\u6807 \u4e0e \u8d77\u70b9 \u76f8\u8ddd \u4e00\u4e2a \u8f6c\u5f2f \u3002 \u53f3 \uff1a \u4efb\u610f \u4f4d\u7f6e \uff0c \u76ee\u6807 \u8ddd\u79bb \u8d77\u59cb \u4f4d\u7f6e \u8f83 \u8fdc \uff0c \u901a\u5e38 \u8d85\u8fc7 \u4e00\u4e2a \u8f6c\u5f2f \u3002 \u6211\u4eec \u5c06 \u6bcf\u4e2a \u59ff\u52bf \u5b9a\u4e49 \u4e3a \u4e00\u9879 \u4efb\u52a1 \u3002 \u6b64\u5916 \uff0c \u6211\u4eec \u8fd8 \u4e3a \u6bcf\u4e2a \u4efb\u52a1 \u8bbe\u7f6e \u52a8\u6001 \u5bf9\u8c61 \u7684 \u6570\u91cf \uff0c \u5e76 \u91cd\u590d \u4efb\u610f \u4f4d\u7f6e \u4efb\u52a1 \uff0c \u4f7f \u5176 \u4e5f \u4f7f\u7528 \u52a8\u6001 \u5bf9\u8c61 \u8fdb\u884c \u5b9a\u4e49 \u3002 \u5728 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u4e2d \uff0c \u6211\u4eec \u5c55\u793a \u4e86 \u6bcf\u4e2a \u4efb\u52a1 \u7684 \u6700\u7ec8 \u5b9a\u4e49 \u4f4d\u7f6e \u548c \u52a8\u6001 \u5bf9\u8c61 \u7684 \u6570\u91cf \uff1a # Define the start / end position below as tasks poses _ task0 = [ [ 7 , 3 ] ] poses _ task1 = [ [ 138 , 17 ] ] poses _ task2 = [ [ 140 , 134 ] ] poses _ task3 = [ [ 140 , 134 ] ] # Concatenate all the tasks poses _ tasks = [ poses _ task0 , poses _ task1 , poses _ task1 , poses _ task3 ] # Add dynamic objects to tasks vehicles _ tasks = [ 0 , 0 , 0 , 20 ] pedestrians _ tasks = [ 0 , 0 , 0 , 50 ] \u6700\u540e \uff0c \u901a\u8fc7 \u4f7f\u7528 \u5b9a\u4e49 \u7684 \u4efb\u52a1 \uff0c \u6211\u4eec \u53ef\u4ee5 \u6784\u5efa \u5b9e\u9a8c \u5411\u91cf \uff0c \u5982 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u6240\u793a \uff1a experiments _ vector = [ ] # The used weathers is the union between test and train weathers for weather in used _ weathers : for iteration in range ( len ( poses _ tasks ) ) : poses = poses _ tasks [ iteration ] vehicles = vehicles _ tasks [ iteration ] pedestrians = pedestrians _ tasks [ iteration ] conditions = CarlaSettings ( ) conditions . set ( SendNonPlayerAgentsInfo = True , NumberOfVehicles = vehicles , NumberOfPedestrians = pedestrians , WeatherId = weather ) # Add all the cameras that were set for this experiments conditions . add _ sensor ( camera ) experiment = Experiment ( ) experiment . set ( Conditions = conditions , Poses = poses , Task = iteration , Repetitions = 1 ) experiments _ vector . append ( experiment ) \u5b8c\u6574 \u4ee3\u7801 \u53ef\u4ee5 \u5728 basic _ experiment _ suite . py \u627e\u5230 \u3002 \u9884\u671f \u7ed3\u679c \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4e00\u4e2a \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u7684 Carla \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u8fd9\u6837 \u60a8 \u83b7\u5f97 \u7684 \u7ed3\u679c \u5c06 \u6216\u591a\u6216\u5c11 \u5177\u6709 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 \u4e3a\u6b64 \uff0c \u60a8 \u5e94\u8be5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u8fd0\u884c Carla \u6a21\u62df \u6a21\u62df\u5668 \uff1a . / CarlaUE4 . sh / Game / Maps / < Town _ name > - windowed - world - port = 2000 - benchmark - fps = 10 \u672c \u6559\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u4ee5 \u9488\u5bf9 Town01 \u6267\u884c \uff0c \u5982\u4e0b \u6240\u793a \uff1a . / driving _ benchmark _ example . py - c Town01 \u60a8 \u5e94\u8be5 \u671f\u671b \u5f97\u5230 \u4ee5\u4e0b \u7ed3\u679c \uff1a town01 _ basic _ forward _ results \u5bf9\u4e8e Town02 \uff1a . / driving _ benchmark _ example . py - c Town02 \u60a8 \u5e94\u8be5 \u671f\u671b \u5f97\u5230 \u4ee5\u4e0b \u7ed3\u679c \uff1a town01 _ basic _ forward _ results","title":"\u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"benchmark_creating/#_1","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u5c55\u793a \uff1a \u5982\u4f55 \u5b9a\u4e49 \u4e00\u4e2a \u5177\u6709 \u524d\u5411 \u7b56\u7565 \u7684 \u7b80\u5355 \u4ee3\u7406 \u5982\u4f55 \u5b9a\u4e49 \u4e00\u4e2a \u57fa\u672c \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u5b9a\u4e49 \u5b9a\u4e49 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u6784\u5efa \u5b9e\u9a8c \u9884\u671f \u7ed3\u679c \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u4e0e \u5176\u4ed6 \u4e24\u4e2a \u6a21\u5757 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u4ee3\u7406 \u6a21\u5757 \u662f \u53e6 \u4e00\u4e2a \u6a21\u5757 \uff08 \u5b9e\u9a8c \u5957\u4ef6 \uff09 \u4e2d \u6267\u884c \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8fd9 \u4e24\u4e2a \u6a21\u5757 \u90fd \u662f \u62bd\u8c61 \u62bd\u8c61\u7c7b \uff0c \u5fc5\u987b \u7531 \u7528\u6237 \u91cd\u65b0 \u5b9a\u4e49 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u6458\u5f55 \u662f \u5982\u4f55 \u5e94\u7528 \u9a7e\u9a76 \u57fa\u51c6 \u7684 \u793a\u4f8b \uff1b # \u6211\u4eec \u5b9e\u4f8b \u5316 \u4e86 \u4e00\u4e2a \u8f6c\u53d1 \u4ee3\u7406 \uff0c \u8fd9\u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u7b56\u7565 \uff0c # \u53ea \u9700 \u5c06 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u8bbe\u7f6e \u4e3a 0.9 \uff0c \u5c06 \u8f6c\u5411 \u8bbe\u7f6e \u4e3a \u96f6 agent = ForwardAgent ( ) # \u6211\u4eec \u5b9e\u4f8b \u5316 \u4e86 \u4e00\u4e2a \u5b9e\u9a8c \u5957\u4ef6 \u3002 # \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u4e00\u7ec4 \u5c06 \u5728 \u6b64 \u57fa\u51c6 \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u7684 \u5b9e\u9a8c \u3002 experiment _ suite = BasicExperimentSuite ( city _ name ) # \u73b0\u5728 \u5b9e\u9645 \u8fd0\u884c driving _ benchmark \u3002 # \u9664\u4e86 \u4ee3\u7406 \u548c \u5b9e\u9a8c \u5957\u4ef6 \u4e4b\u5916 \uff0c \u6211\u4eec \u8fd8 \u5e94\u8be5 \u53d1\u9001 \u57ce\u5e02 \u540d\u79f0 \uff08 Town01 \uff0c Town02 \uff09 \u65e5\u5fd7 run _ driving _ benchmark ( agent , experiment _ suite , city _ name , log _ name , continue _ experiment , host , port ) \u8fd9 \u6bb5 \u6458\u5f55 \u4e4b\u540e \uff0c \u6709 \u4e24\u4e2a \u7c7b \u9700\u8981 \u5b9a\u4e49 \u3002 ForwardAgent ( ) \u548c BasicExperimentSuite ( ) \u3002 \u4e4b\u540e \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u201c run _ driving _ benchmark \u201d \u51fd\u6570 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u6267\u884c \u6458\u8981 \u3001 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u5b58\u50a8 \u5728 json \u6587\u4ef6 \u4e2d \u6253\u5370 \u5e76\u6253\u5370 \u5230 \u5c4f\u5e55 \u4e0a \u3002","title":"\u5bf9 \u4f60 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"benchmark_creating/#_2","text":"\u88ab \u6d4b\u8bd5 \u7684 \u4ee3\u7406 \u5fc5\u987b \u7ee7\u627f \u57fa\u7c7b Agent \u3002 \u6211\u4eec \u5148 \u4ece \u6d3e\u751f \u4e00\u4e2a \u7b80\u5355 \u7684 \u8f6c\u53d1 \u4ee3\u7406 \u5f00\u59cb \uff1a from carla . agent . agent import Agent from carla . client import VehicleControl class ForwardAgent ( Agent ) : \u4e3a\u4e86 \u8bc4\u4f30 \u5176 \u6027\u80fd \uff0c ForwardAgent \u6d3e\u751f \u6d3e\u751f\u7c7b \u5fc5\u987b \u91cd\u65b0 \u5b9a\u4e49 run _ step \u51fd\u6570 \uff0c \u5982 \u4e0b\u9762 \u6458\u5f55 \u7684 \u90a3\u6837 \uff1a def run _ step ( self , measurements , sensor _ data , directions , target ) : \" \" \" \u5728 CARLA \u8f66\u8f86 \u4e2d \u8fd0\u884c \u63a7\u5236 \u6b65\u9aa4 \u7684 \u51fd\u6570 \u3002 \" \" \" control = VehicleControl ( ) control . throttle = 0.9 return control \u8be5 \u51fd\u6570 \u63a5\u6536 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u6d4b\u91cf \u503c \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ece CARLA \u6a21\u62df \u6a21\u62df\u5668 \u63a5\u6536 \u5230 \u7684 \u6574\u4e2a \u4e16\u754c \u72b6\u6001 \u3002 \u8fd9\u4e9b \u6d4b\u91cf \u503c \u5305\u542b \u4ee3\u7406 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u3001 \u52a8\u6001 \u5bf9\u8c61 \u4fe1\u606f \u7b49 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff1a \u6765\u81ea \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6d4b\u91cf \u6570\u636e \uff0c \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6216 RGB \u6444\u50cf \u6444\u50cf\u673a \u3002 \u65b9\u5411 \uff1a \u6765\u81ea \u9ad8\u7ea7 \u89c4\u5212 \u5668 \u7684 \u4fe1\u606f \u3002 \u5f53\u524d \uff0c \u89c4\u5212 \u5668 \u4ece \u4e0b\u5217 \u96c6\u5408 \u53d1\u9001 \u9ad8\u7ea7 \u547d\u4ee4 \uff1a \u76f4\u884c \u3001 \u53f3 \u884c \u3001 \u5de6 \u884c \u3001 \u65e0 \u884c \u3002 \u76ee\u6807 \u4f4d\u7f6e \uff1a \u76ee\u6807 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u6709 \u4e86 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \uff0c run _ step \u51fd\u6570 \u9884\u8ba1 \u4f1a \u8fd4\u56de \u4e00\u4e2a \u8f66\u8f86 \u63a7\u5236 \u6d88\u606f \uff0c \u5305\u542b \uff1a \u8f6c\u5411 \u503c \u3001 \u6cb9\u95e8 \u503c \u3001 \u5239\u8f66 \u503c \u7b49 \u3002","title":"\u5b9a\u4e49 \u4ee3\u7406 "},{"location":"benchmark_creating/#_3","text":"\u8981 \u521b\u5efa \u5b9e\u9a8c \u5957\u4ef6 \u7c7b \uff0c \u60a8 \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u901a\u8fc7 \u7ee7\u627f ExperimentSuite \u57fa\u7c7b \u6765 \u521b\u5efa \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7c7b \u3002 \u5b9a\u4e49 \u8981 \u4f7f\u7528 \u7684 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 \u3002 \u6784\u5efa \u5b9e\u9a8c \u5bf9\u8c61 \u3002","title":"\u5b9a\u4e49 \u5b9e\u9a8c \u5957\u4ef6 "},{"location":"benchmark_creating/#_4","text":"\u5b9a\u4e49 \u7684 \u5b9e\u9a8c \u96c6 \u5fc5\u987b \u6d3e\u751f ExperimentSuite \u7c7b \uff0c \u5982 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u6240\u793a \uff1a from carla . agent _ benchmark . experiment import Experiment from carla . sensor import Camera from carla . settings import CarlaSettings from . experiment _ suite import ExperimentSuite class BasicExperimentSuite ( ExperimentSuite ) :","title":"\u5b9a\u4e49 "},{"location":"benchmark_creating/#_5","text":"\u7528\u6237 \u5fc5\u987b \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5929\u6c14 \u3002 \u5e94\u8be5 \u9009\u62e9 \u4e00\u7ec4 \u6d4b\u8bd5 \u5929\u6c14 \u548c \u4e00\u7ec4 \u8bad\u7ec3 \u5929\u6c14 \u3002 \u8fd9 \u88ab \u5b9a\u4e49 \u4e3a\u7c7b \u5c5e\u6027 \uff0c \u5982\u4e0b \u4f8b \u6240\u793a \uff1a @ property def train _ weathers ( self ) : return [ 1 ] @ property def test _ weathers ( self ) : return [ 1 ]","title":"\u5b9a\u4e49 \u6d4b\u8bd5 \u548c \u8bad\u7ec3 \u5929\u6c14 \u6761\u4ef6 "},{"location":"benchmark_creating/#_6","text":"\u5b9e\u9a8c \u7531 \u4e00\u7ec4 \u59ff\u52bf \u5b9a\u4e49 \u7684 \u4efb\u52a1 \u7ec4\u6210 \u3002 \u8ba9 \u6211\u4eec \u4ece \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u57ce\u5e02 \u7684 \u59ff\u52bf \u5f00\u59cb \uff0c \u4ee5 Town01 \u4e3a\u4f8b \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u67e5\u770b \u6240\u6709 \u53ef\u80fd \u7684 \u4f4d\u7f6e \uff0c \u4e3a\u6b64 \uff0c \u5728 \u7ec8\u7aef \u4e2d \u8fd0\u884c CARLA \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u8fd0\u884c view _ start _ positions . py \uff1a python view _ start _ positions . py \u73b0\u5728 \u8ba9 \u6211\u4eec \u9009\u62e9 140 \u4f5c\u4e3a \u8d77\u59cb \u4f4d\u7f6e \uff0c 134 \u4f5c\u4e3a \u7ec8\u6b62 \u4f4d\u7f6e \u3002 \u8fd9 \u4e24\u4e2a \u4f4d\u7f6e \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 \uff1a python view _ start _ positions . py -- pos 140 , 134 -- no - labels \u6211\u4eec \u518d \u9009\u62e9 \u4e24\u4e2a \u59ff\u52bf \uff0c \u4e00\u4e2a \u7528\u4e8e \u76f4\u884c \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u7b80\u5355 \u8f6c\u5f2f \u3002 \u6b64\u5916 \uff0c \u6211\u4eec \u8fd8 \u4e3a Town02 \u9009\u62e9 \u4e09\u4e2a \u59ff\u52bf \uff1a \u56fe \uff1a \u6b64 \u57fa\u672c \u5b9e\u9a8c \u5957\u4ef6 \u793a\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u59ff\u52bf \u3002 \u59ff\u52bf \u662f \u76ee\u6807 \u5bfc\u5411 \u60c5\u8282 \u7684 \u5f00\u59cb \u548c \u7ed3\u675f \u4f4d\u7f6e \u7684 \u5143\u7ec4 \u3002 \u5f00\u59cb \u4f4d\u7f6e \u663e\u793a \u4e3a \u84dd\u8272 \uff0c \u7ed3\u675f \u4f4d\u7f6e \u663e\u793a \u4e3a \u7ea2\u8272 \u3002 \u5de6 \uff1a \u76f4\u7ebf \u59ff\u52bf \uff0c \u5176\u4e2d \u76ee\u6807 \u4e0e \u8d77\u59cb \u4f4d\u7f6e \u76f4\u7ebf \u8ddd\u79bb \u3002 \u4e2d \uff1a \u4e00\u4e2a \u8f6c\u5f2f \u60c5\u8282 \uff0c \u5176\u4e2d \u76ee\u6807 \u4e0e \u8d77\u70b9 \u76f8\u8ddd \u4e00\u4e2a \u8f6c\u5f2f \u3002 \u53f3 \uff1a \u4efb\u610f \u4f4d\u7f6e \uff0c \u76ee\u6807 \u8ddd\u79bb \u8d77\u59cb \u4f4d\u7f6e \u8f83 \u8fdc \uff0c \u901a\u5e38 \u8d85\u8fc7 \u4e00\u4e2a \u8f6c\u5f2f \u3002 \u6211\u4eec \u5c06 \u6bcf\u4e2a \u59ff\u52bf \u5b9a\u4e49 \u4e3a \u4e00\u9879 \u4efb\u52a1 \u3002 \u6b64\u5916 \uff0c \u6211\u4eec \u8fd8 \u4e3a \u6bcf\u4e2a \u4efb\u52a1 \u8bbe\u7f6e \u52a8\u6001 \u5bf9\u8c61 \u7684 \u6570\u91cf \uff0c \u5e76 \u91cd\u590d \u4efb\u610f \u4f4d\u7f6e \u4efb\u52a1 \uff0c \u4f7f \u5176 \u4e5f \u4f7f\u7528 \u52a8\u6001 \u5bf9\u8c61 \u8fdb\u884c \u5b9a\u4e49 \u3002 \u5728 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u4e2d \uff0c \u6211\u4eec \u5c55\u793a \u4e86 \u6bcf\u4e2a \u4efb\u52a1 \u7684 \u6700\u7ec8 \u5b9a\u4e49 \u4f4d\u7f6e \u548c \u52a8\u6001 \u5bf9\u8c61 \u7684 \u6570\u91cf \uff1a # Define the start / end position below as tasks poses _ task0 = [ [ 7 , 3 ] ] poses _ task1 = [ [ 138 , 17 ] ] poses _ task2 = [ [ 140 , 134 ] ] poses _ task3 = [ [ 140 , 134 ] ] # Concatenate all the tasks poses _ tasks = [ poses _ task0 , poses _ task1 , poses _ task1 , poses _ task3 ] # Add dynamic objects to tasks vehicles _ tasks = [ 0 , 0 , 0 , 20 ] pedestrians _ tasks = [ 0 , 0 , 0 , 50 ] \u6700\u540e \uff0c \u901a\u8fc7 \u4f7f\u7528 \u5b9a\u4e49 \u7684 \u4efb\u52a1 \uff0c \u6211\u4eec \u53ef\u4ee5 \u6784\u5efa \u5b9e\u9a8c \u5411\u91cf \uff0c \u5982 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u6458\u5f55 \u6240\u793a \uff1a experiments _ vector = [ ] # The used weathers is the union between test and train weathers for weather in used _ weathers : for iteration in range ( len ( poses _ tasks ) ) : poses = poses _ tasks [ iteration ] vehicles = vehicles _ tasks [ iteration ] pedestrians = pedestrians _ tasks [ iteration ] conditions = CarlaSettings ( ) conditions . set ( SendNonPlayerAgentsInfo = True , NumberOfVehicles = vehicles , NumberOfPedestrians = pedestrians , WeatherId = weather ) # Add all the cameras that were set for this experiments conditions . add _ sensor ( camera ) experiment = Experiment ( ) experiment . set ( Conditions = conditions , Poses = poses , Task = iteration , Repetitions = 1 ) experiments _ vector . append ( experiment ) \u5b8c\u6574 \u4ee3\u7801 \u53ef\u4ee5 \u5728 basic _ experiment _ suite . py \u627e\u5230 \u3002","title":"\u6784\u5efa \u5b9e\u9a8c "},{"location":"benchmark_creating/#_7","text":"\u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4e00\u4e2a \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u7684 Carla \u6a21\u62df \u6a21\u62df\u5668 \uff0c \u8fd9\u6837 \u60a8 \u83b7\u5f97 \u7684 \u7ed3\u679c \u5c06 \u6216\u591a\u6216\u5c11 \u5177\u6709 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 \u4e3a\u6b64 \uff0c \u60a8 \u5e94\u8be5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u8fd0\u884c Carla \u6a21\u62df \u6a21\u62df\u5668 \uff1a . / CarlaUE4 . sh / Game / Maps / < Town _ name > - windowed - world - port = 2000 - benchmark - fps = 10 \u672c \u6559\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u4ee5 \u9488\u5bf9 Town01 \u6267\u884c \uff0c \u5982\u4e0b \u6240\u793a \uff1a . / driving _ benchmark _ example . py - c Town01 \u60a8 \u5e94\u8be5 \u671f\u671b \u5f97\u5230 \u4ee5\u4e0b \u7ed3\u679c \uff1a town01 _ basic _ forward _ results \u5bf9\u4e8e Town02 \uff1a . / driving _ benchmark _ example . py - c Town02 \u60a8 \u5e94\u8be5 \u671f\u671b \u5f97\u5230 \u4ee5\u4e0b \u7ed3\u679c \uff1a town01 _ basic _ forward _ results","title":"\u9884\u671f \u7ed3\u679c "},{"location":"benchmark_metrics/","text":"\u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u6a21\u5757 \u3002 \u6b64 \u6a21\u5757 \u7528\u4e8e \u6839\u636e \u4ee3\u7406 \u5728 \u57fa\u51c6 \u6d4b\u8bd5 \u671f\u95f4 \u6267\u884c \u7684 \u64cd\u4f5c \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u6458\u8981 \u3002 \u63d0\u4f9b \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u9a7e\u9a76 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u6a21\u5757 \u63d0\u4f9b \u4ee5\u4e0b \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \uff1a \u6210\u529f \u767e\u5206 \u767e\u5206\u6bd4 \uff1a \u4ee3\u7406 \u6210\u529f \u5b8c\u6210 \u7684 \u60c5\u8282 \uff08 \u4efb\u52a1 \u59ff\u52bf \uff09 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u5e73\u5747 \u5b8c\u6210 \u5b8c\u6210\u5ea6 \uff1a \u4ee3\u7406 \u80fd\u591f \u5230\u8fbe \u76ee\u6807 \u7684 \u5e73\u5747 \u8ddd\u79bb \u3002 \u8d8a\u91ce \u8def\u53e3 \uff1a \u4ee3\u7406 \u9a76\u51fa \u9053\u8def \u7684 \u6b21\u6570 \u3002 \u53ea\u6709 \u5f53 \u8f66\u8f86 \u5728 \u9053\u8def \u5916 \u7684 \u9762\u79ef \u5927\u4e8e \u9608\u503c \u65f6 \uff0c \u624d \u4f1a \u8ba1\u7b97 \u8def\u53e3 \u3002 \u5176\u4ed6 \u8f66\u9053 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \uff1a \u4ee3\u7406 \u8fdb\u5165 \u5176\u4ed6 \u8f66\u9053 \u7684 \u6b21\u6570 \u3002 \u53ea\u6709 \u5f53 \u5176\u4ed6 \u8f66\u9053 \u4e0a \u7684 \u8f66\u8f86 \u9762\u79ef \u5927\u4e8e \u9608\u503c \u65f6 \uff0c \u624d \u4f1a \u8ba1\u7b97 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002 \u8f66\u8f86 \u78b0\u649e \uff1a \u5f71\u54cd \u91cf \u5927\u4e8e \u9608\u503c \u7684 \u8f66\u8f86 \u78b0\u649e \u6b21\u6570 \u3002 \u884c\u4eba \u78b0\u649e \uff1a \u4e0e \u884c\u4eba \u53d1\u751f \u78b0\u649e \u4e14 \u5f71\u54cd \u5927\u4e8e \u9608\u503c \u7684 \u6b21\u6570 \u3002 \u4e00\u822c \u78b0\u649e \uff1a \u4e0e \u6240\u6709 \u5176\u4ed6 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u4e14 \u5f71\u54cd \u5927\u4e8e \u9608\u503c \u7684 \u6b21\u6570 \u3002 \u6267\u884c \u5e76 \u8bbe\u7f6e \u53c2\u6570 \u6307\u6807 \u4f5c\u4e3a \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u6700\u540e \u4e00\u6b65 \u8fdb\u884c \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u6458\u8981 \u5b58\u50a8 \u5728 json \u6587\u4ef6 \u4e2d \u3002 \u5185\u90e8 \u6267\u884c \u5982\u4e0b \uff1a metrics _ object = Metrics ( metrics _ parameters ) summary _ dictionary = metrics _ object . compute ( path _ to _ execution _ log ) Metric \u7684 \u8ba1\u7b97 \u51fd\u6570 \u63a5\u6536 \u6267\u884c \u65e5\u5fd7 \u7684 \u5b8c\u6574 \u8def\u5f84 \u3002 Metric \u7c7b \u5e94\u8be5 \u4f7f\u7528 \u4e00\u4e9b \u53c2\u6570 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u5305\u62ec \uff1a \u9608\u503c \uff1a \u6307\u6807 \u4f7f\u7528 \u7684 \u9608\u503c \u3002 \u5e27 \u91cd\u65b0 \u8ba1\u6570 \uff1a \u72af\u89c4 \u540e \uff0c \u8bbe\u7f6e \u4ee3\u7406 \u9700\u8981 \u7ee7\u7eed \u72af\u89c4 \u7684 \u5e27 \u6570 \uff0c \u624d \u4f1a \u5c06 \u5176\u8ba1 \u4e3a \u53e6 \u4e00\u6b21 \u72af\u89c4 \u3002 \u8df3\u8fc7 \u5e27 \u6570 \uff1a \u4e0e \u78b0\u649e \u6216 \u4ea4\u53c9 \u5f00\u59cb \u540e \u8df3 \u8fc7 \u7684 \u5e27 \u6570 \u6709\u5173 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u88ab \u5b9a\u4e49 \u4e3a \u5b9e\u9a8c \u5957\u4ef6 \u57fa\u7c7b \u7684 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u5728 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b9e\u9a8c \u5957\u4ef6 \u4e2d \u91cd\u65b0 \u5b9a\u4e49 \u3002 \u9ed8\u8ba4 \u53c2\u6570 \u4e3a \uff1a @ property def metrics _ parameters ( self ) : \" \" \" Property to return the parameters for the metrics module Could be redefined depending on the needs of the user . \" \" \" return { ' intersection _ offroad ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 0.3 } , ' intersection _ otherlane ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 0.4 } , ' collision _ other ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 400 } , ' collision _ vehicles ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 30 , ' threshold ' : 400 } , ' collision _ pedestrians ' : { ' frames _ skip ' : 5 , ' frames _ recount ' : 100 , ' threshold ' : 300 } , }","title":"\u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd\u6307\u6807"},{"location":"benchmark_metrics/#_1","text":"\u672c\u9875 \u4ecb\u7ecd \u4e86 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u6a21\u5757 \u3002 \u6b64 \u6a21\u5757 \u7528\u4e8e \u6839\u636e \u4ee3\u7406 \u5728 \u57fa\u51c6 \u6d4b\u8bd5 \u671f\u95f4 \u6267\u884c \u7684 \u64cd\u4f5c \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u6458\u8981 \u3002","title":"\u8ba1\u7b97 \u7684 \u57fa\u51c6 \u6027\u80fd\u6307\u6807"},{"location":"benchmark_metrics/#_2","text":"\u9a7e\u9a76 \u57fa\u51c6 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u6a21\u5757 \u63d0\u4f9b \u4ee5\u4e0b \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \uff1a \u6210\u529f \u767e\u5206 \u767e\u5206\u6bd4 \uff1a \u4ee3\u7406 \u6210\u529f \u5b8c\u6210 \u7684 \u60c5\u8282 \uff08 \u4efb\u52a1 \u59ff\u52bf \uff09 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u5e73\u5747 \u5b8c\u6210 \u5b8c\u6210\u5ea6 \uff1a \u4ee3\u7406 \u80fd\u591f \u5230\u8fbe \u76ee\u6807 \u7684 \u5e73\u5747 \u8ddd\u79bb \u3002 \u8d8a\u91ce \u8def\u53e3 \uff1a \u4ee3\u7406 \u9a76\u51fa \u9053\u8def \u7684 \u6b21\u6570 \u3002 \u53ea\u6709 \u5f53 \u8f66\u8f86 \u5728 \u9053\u8def \u5916 \u7684 \u9762\u79ef \u5927\u4e8e \u9608\u503c \u65f6 \uff0c \u624d \u4f1a \u8ba1\u7b97 \u8def\u53e3 \u3002 \u5176\u4ed6 \u8f66\u9053 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \uff1a \u4ee3\u7406 \u8fdb\u5165 \u5176\u4ed6 \u8f66\u9053 \u7684 \u6b21\u6570 \u3002 \u53ea\u6709 \u5f53 \u5176\u4ed6 \u8f66\u9053 \u4e0a \u7684 \u8f66\u8f86 \u9762\u79ef \u5927\u4e8e \u9608\u503c \u65f6 \uff0c \u624d \u4f1a \u8ba1\u7b97 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002 \u8f66\u8f86 \u78b0\u649e \uff1a \u5f71\u54cd \u91cf \u5927\u4e8e \u9608\u503c \u7684 \u8f66\u8f86 \u78b0\u649e \u6b21\u6570 \u3002 \u884c\u4eba \u78b0\u649e \uff1a \u4e0e \u884c\u4eba \u53d1\u751f \u78b0\u649e \u4e14 \u5f71\u54cd \u5927\u4e8e \u9608\u503c \u7684 \u6b21\u6570 \u3002 \u4e00\u822c \u78b0\u649e \uff1a \u4e0e \u6240\u6709 \u5176\u4ed6 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u4e14 \u5f71\u54cd \u5927\u4e8e \u9608\u503c \u7684 \u6b21\u6570 \u3002","title":"\u63d0\u4f9b \u6027\u80fd\u6307\u6807"},{"location":"benchmark_metrics/#_3","text":"\u6307\u6807 \u4f5c\u4e3a \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u6700\u540e \u4e00\u6b65 \u8fdb\u884c \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u6458\u8981 \u5b58\u50a8 \u5728 json \u6587\u4ef6 \u4e2d \u3002 \u5185\u90e8 \u6267\u884c \u5982\u4e0b \uff1a metrics _ object = Metrics ( metrics _ parameters ) summary _ dictionary = metrics _ object . compute ( path _ to _ execution _ log ) Metric \u7684 \u8ba1\u7b97 \u51fd\u6570 \u63a5\u6536 \u6267\u884c \u65e5\u5fd7 \u7684 \u5b8c\u6574 \u8def\u5f84 \u3002 Metric \u7c7b \u5e94\u8be5 \u4f7f\u7528 \u4e00\u4e9b \u53c2\u6570 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u5305\u62ec \uff1a \u9608\u503c \uff1a \u6307\u6807 \u4f7f\u7528 \u7684 \u9608\u503c \u3002 \u5e27 \u91cd\u65b0 \u8ba1\u6570 \uff1a \u72af\u89c4 \u540e \uff0c \u8bbe\u7f6e \u4ee3\u7406 \u9700\u8981 \u7ee7\u7eed \u72af\u89c4 \u7684 \u5e27 \u6570 \uff0c \u624d \u4f1a \u5c06 \u5176\u8ba1 \u4e3a \u53e6 \u4e00\u6b21 \u72af\u89c4 \u3002 \u8df3\u8fc7 \u5e27 \u6570 \uff1a \u4e0e \u78b0\u649e \u6216 \u4ea4\u53c9 \u5f00\u59cb \u540e \u8df3 \u8fc7 \u7684 \u5e27 \u6570 \u6709\u5173 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u88ab \u5b9a\u4e49 \u4e3a \u5b9e\u9a8c \u5957\u4ef6 \u57fa\u7c7b \u7684 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u5728 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b9e\u9a8c \u5957\u4ef6 \u4e2d \u91cd\u65b0 \u5b9a\u4e49 \u3002 \u9ed8\u8ba4 \u53c2\u6570 \u4e3a \uff1a @ property def metrics _ parameters ( self ) : \" \" \" Property to return the parameters for the metrics module Could be redefined depending on the needs of the user . \" \" \" return { ' intersection _ offroad ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 0.3 } , ' intersection _ otherlane ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 0.4 } , ' collision _ other ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 20 , ' threshold ' : 400 } , ' collision _ vehicles ' : { ' frames _ skip ' : 10 , ' frames _ recount ' : 30 , ' threshold ' : 400 } , ' collision _ pedestrians ' : { ' frames _ skip ' : 5 , ' frames _ recount ' : 100 , ' threshold ' : 300 } , }","title":"\u6267\u884c \u5e76 \u8bbe\u7f6e \u53c2\u6570"},{"location":"benchmark_start/","text":"\u9a7e\u9a76 \u57fa\u51c6 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7528\u4e8e \u8bc4\u4f30 \u9a7e\u9a76 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u4ee3\u7406 \uff09 \u5e76 \u83b7\u53d6 \u6709\u5173 \u5176 \u6027\u80fd \u7684 \u6307\u6807 \u3002 \u8be5 \u6a21\u5757 \u4e3b\u8981 \u8bbe\u8ba1 \u7528\u4e8e \uff1a \u81f4\u529b \u81f4\u529b\u4e8e \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u5e76 \u5e0c\u671b \u4e86\u89e3 \u5176 \u5728 CARLA \u4e2d \u7684 \u8868\u73b0 \u7684 \u7528\u6237 \u3002 \u5728 \u672c\u8282 \u4e2d \u60a8 \u5c06 \u4e86\u89e3 \u3002 \u5982\u4f55 \u5feb\u901f \u5165\u95e8 \u5e76 \u7acb\u5373 \u5bf9 \u7b80\u5355 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4e86\u89e3 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u6a21\u5757 \u7684 \u603b\u4f53 \u5b9e\u73b0 \u67b6\u6784 \u3002 \u4e86\u89e3 \u5982\u4f55 \u8bbe\u7f6e \u60a8 \u7684 \u4ee3\u7406 \u5e76 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u4e00\u7ec4 \u5b9e\u9a8c \u3002 \u4e86\u89e3 \u6240 \u4f7f\u7528 \u7684 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u3002 \u5165\u95e8 \u4e3a\u4e86 \u8ba9 \u60a8 \u719f\u6089 \u7cfb\u7edf \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5728 \u4e00\u7ec4 \u5c0f\u578b \u5b9e\u9a8c \u4e2d \u6267\u884c \u7684 \u7b80\u5355 \u4ee3\u7406 \uff08 \u57fa\u672c \uff09 \u3002 \u8981 \u6267\u884c \u5b83 \uff0c \u53ea \u9700 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py \u8bf7 \u8bb0\u4f4f \uff0c \u8981 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \uff0c \u60a8 \u9700\u8981 \u5728 \u672c\u5730 \u4e3b\u673a \u548c \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c CARLA \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 \u4e0e CoRL 2017 \u8bba\u6587 \u4e2d \u4f7f\u7528 \u7684 \u76f8\u540c \u57fa\u51c6 \u3002 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u7b80\u5355 \u7684 \u4ee3\u7406 \u4e2d \u8fd0\u884c \uff0c \u53ea \u9700 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py -- corl - 2017 \u6b64 \u57fa\u51c6 \u6d4b\u8bd5 \u793a\u4f8b \u53ef\u4ee5 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u914d\u7f6e \u3002 \u8fd0\u884c help \u547d\u4ee4 \u67e5\u770b \u53ef\u7528 \u7684 \u9009\u9879 \u3002 . / driving _ benchmark _ example . py -- help \u53ef\u7528 \u7684 \u9009\u9879 \u4e4b\u4e00 \u662f \u80fd\u591f \u4ece \u4e4b\u524d \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \u6267\u884c \u7ee7\u7eed \u3002 \u4f8b\u5982 \uff0c \u8981 \u7ee7\u7eed CoRL2017 \u4e2d \u65e5\u5fd7 \u540d\u79f0 \u4e3a \u201c driving _ benchmark _ test \u201d \u7684 \u5b9e\u9a8c \uff0c \u8bf7 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py -- continue - experiment - n driving _ benchmark _ test -- corl - 2017 \u7b14\u8bb0 \u5982\u679c \u65e5\u5fd7 \u540d\u79f0 \u5df2\u7ecf \u5b58\u5728 \u5e76\u4e14 \u60a8 \u6ca1\u6709 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u7ee7\u7eed \uff0c \u5b83 \u5c06 \u4ee5 \u4e0d\u540c \u7684 \u540d\u79f0 \u521b\u5efa \u53e6 \u4e00\u4e2a \u65e5\u5fd7 \u3002 \u5f53 \u8fd0\u884c \u57fa\u672c \u914d\u7f6e \u7684 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u65f6 \uff0c \u4f60 \u5e94\u8be5 \u671f\u5f85 \u8fd9\u4e9b \u7ed3\u679c \u3002","title":"\u9a7e\u9a76 \u57fa\u51c6"},{"location":"benchmark_start/#_1","text":"\u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7528\u4e8e \u8bc4\u4f30 \u9a7e\u9a76 \u63a7\u5236 \u63a7\u5236\u5668 \uff08 \u4ee3\u7406 \uff09 \u5e76 \u83b7\u53d6 \u6709\u5173 \u5176 \u6027\u80fd \u7684 \u6307\u6807 \u3002 \u8be5 \u6a21\u5757 \u4e3b\u8981 \u8bbe\u8ba1 \u7528\u4e8e \uff1a \u81f4\u529b \u81f4\u529b\u4e8e \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u5e76 \u5e0c\u671b \u4e86\u89e3 \u5176 \u5728 CARLA \u4e2d \u7684 \u8868\u73b0 \u7684 \u7528\u6237 \u3002 \u5728 \u672c\u8282 \u4e2d \u60a8 \u5c06 \u4e86\u89e3 \u3002 \u5982\u4f55 \u5feb\u901f \u5165\u95e8 \u5e76 \u7acb\u5373 \u5bf9 \u7b80\u5355 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4e86\u89e3 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u6a21\u5757 \u7684 \u603b\u4f53 \u5b9e\u73b0 \u67b6\u6784 \u3002 \u4e86\u89e3 \u5982\u4f55 \u8bbe\u7f6e \u60a8 \u7684 \u4ee3\u7406 \u5e76 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u4e00\u7ec4 \u5b9e\u9a8c \u3002 \u4e86\u89e3 \u6240 \u4f7f\u7528 \u7684 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u3002","title":"\u9a7e\u9a76 \u57fa\u51c6"},{"location":"benchmark_start/#_2","text":"\u4e3a\u4e86 \u8ba9 \u60a8 \u719f\u6089 \u7cfb\u7edf \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5728 \u4e00\u7ec4 \u5c0f\u578b \u5b9e\u9a8c \u4e2d \u6267\u884c \u7684 \u7b80\u5355 \u4ee3\u7406 \uff08 \u57fa\u672c \uff09 \u3002 \u8981 \u6267\u884c \u5b83 \uff0c \u53ea \u9700 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py \u8bf7 \u8bb0\u4f4f \uff0c \u8981 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \uff0c \u60a8 \u9700\u8981 \u5728 \u672c\u5730 \u4e3b\u673a \u548c \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c CARLA \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 \u4e0e CoRL 2017 \u8bba\u6587 \u4e2d \u4f7f\u7528 \u7684 \u76f8\u540c \u57fa\u51c6 \u3002 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u7b80\u5355 \u7684 \u4ee3\u7406 \u4e2d \u8fd0\u884c \uff0c \u53ea \u9700 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py -- corl - 2017 \u6b64 \u57fa\u51c6 \u6d4b\u8bd5 \u793a\u4f8b \u53ef\u4ee5 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u914d\u7f6e \u3002 \u8fd0\u884c help \u547d\u4ee4 \u67e5\u770b \u53ef\u7528 \u7684 \u9009\u9879 \u3002 . / driving _ benchmark _ example . py -- help \u53ef\u7528 \u7684 \u9009\u9879 \u4e4b\u4e00 \u662f \u80fd\u591f \u4ece \u4e4b\u524d \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \u6267\u884c \u7ee7\u7eed \u3002 \u4f8b\u5982 \uff0c \u8981 \u7ee7\u7eed CoRL2017 \u4e2d \u65e5\u5fd7 \u540d\u79f0 \u4e3a \u201c driving _ benchmark _ test \u201d \u7684 \u5b9e\u9a8c \uff0c \u8bf7 \u8fd0\u884c \uff1a . / driving _ benchmark _ example . py -- continue - experiment - n driving _ benchmark _ test -- corl - 2017 \u7b14\u8bb0 \u5982\u679c \u65e5\u5fd7 \u540d\u79f0 \u5df2\u7ecf \u5b58\u5728 \u5e76\u4e14 \u60a8 \u6ca1\u6709 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u7ee7\u7eed \uff0c \u5b83 \u5c06 \u4ee5 \u4e0d\u540c \u7684 \u540d\u79f0 \u521b\u5efa \u53e6 \u4e00\u4e2a \u65e5\u5fd7 \u3002 \u5f53 \u8fd0\u884c \u57fa\u672c \u914d\u7f6e \u7684 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u65f6 \uff0c \u4f60 \u5e94\u8be5 \u671f\u5f85 \u8fd9\u4e9b \u7ed3\u679c \u3002","title":"\u5165\u95e8"},{"location":"benchmark_structure/","text":"\u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784 \u4e0b\u56fe \u663e\u793a \u4e86 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 \u56fe \uff1a \u4ee3\u7406 \u57fa\u51c6 \u6d4b\u8bd5 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 \u9a7e\u9a76 \u57fa\u51c6 \u662f \u8d1f\u8d23 \u8bc4\u4f30 \u5b9e\u9a8c \u5957\u4ef6 \u4e2d \u67d0\u4e2a \u4ee3\u7406 \u7684 \u6a21\u5757 \u3002 \u5b9e\u9a8c \u5957\u4ef6 \u662f \u4e00\u4e2a \u62bd\u8c61 \u6a21\u5757 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u5fc5\u987b \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u6d3e\u751f \u3002 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 CoRL2017 \u5957\u4ef6 \u548c \u4e00\u4e2a \u7b80\u5355 \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u4f9b \u6d4b\u8bd5 \u3002 \u5b9e\u9a8c \u5957\u4ef6 \u7531 \u4e00\u7ec4 \u5b9e\u9a8c \u7ec4\u6210 \u3002 \u6bcf\u4e2a \u5b9e\u9a8c \u5305\u542b \u4e00\u4e2a \u7531 \u4e00\u7ec4 \u5bfc\u822a \u60c5\u8282 \u7ec4\u6210 \u7684 \u4efb\u52a1 \uff0c \u7531 \u4e00\u7ec4 \u59ff\u52bf \u8868\u793a \u3002 \u8fd9\u4e9b \u59ff\u52bf \u662f \u5305\u542b \u60c5\u8282 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5143\u7ec4 \u3002 \u5b9e\u9a8c \u8fd8 \u4e0e \u6761\u4ef6 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u6761\u4ef6 \u7531 carla \u8bbe\u7f6e \u5bf9\u8c61 \u8868\u793a \u3002 \u6761\u4ef6 \u6307\u5b9a \u6a21\u62df \u53c2\u6570 \uff0c \u4f8b\u5982 \uff1a \u5929\u6c14 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5957\u4ef6 \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u6570\u91cf \u7b49 \u3002 \u7528\u6237 \u8fd8 \u5e94\u8be5 \u6d3e\u751f \u4e00\u4e2a \u4ee3\u7406 \u7c7b \u3002 \u4ee3\u7406 \u662f \u5c06 \u5728 \u9a7e\u9a76 \u57fa\u51c6 \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u7684 \u4e3b\u52a8 \u90e8\u5206 \u3002 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u8fd8 \u5305\u542b \u4e24\u4e2a \u8f85\u52a9 \u6a21\u5757 \u3002 \u8bb0\u5f55 \u6a21\u5757 \u7528\u4e8e \u8ddf\u8e2a \u6240\u6709 \u6d4b\u91cf \u503c \uff0c \u5e76 \u53ef \u7528\u4e8e \u6682\u505c \u548c \u7ee7\u7eed \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u6307\u6807 \u6a21\u5757 \u7528\u4e8e \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6d4b\u91cf \u503c \u8ba1\u7b97 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u3002 \u793a\u4f8b \uff1a CORL 2017 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 \u7528\u4e8e \u5bf9 CoRL 2017 \u8bba\u6587 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u3002 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u7684 \u7ec4\u6210 \u5982\u4e0b \uff1a \u6bcf\u4e2a CARLA \u57ce\u9547 \u5171 \u8fdb\u884c 24 \u4e2a \u5b9e\u9a8c \uff0c \u5305\u62ec \uff1a \u76f4\u884c \u7684 \u4efb\u52a1 \u3002 \u8fdb\u884c \u4e00\u6b21 \u8f6c\u5f2f \u7684 \u4efb\u52a1 \u3002 \u524d\u5f80 \u4efb\u610f \u4f4d\u7f6e \u7684 \u4efb\u52a1 \u3002 \u5e26 \u7740 \u52a8\u6001 \u7269\u4f53 \u524d\u5f80 \u4efb\u610f \u4f4d\u7f6e \u7684 \u4efb\u52a1 \u3002 \u6bcf\u4e2a \u4efb\u52a1 \u7531 25 \u4e2a \u59ff\u52bf \u7ec4\u6210 \uff0c \u5728 6 \u79cd \u4e0d\u540c \u7684 \u5929\u6c14 \u6761\u4ef6 \u4e0b \u91cd\u590d \u6267\u884c \uff08 \u6674\u6717 \u4e2d\u5348 \u3001 \u5927\u96e8 \u4e2d\u5348 \u3001 \u6674\u6717 \u65e5\u843d \u3001 \u96e8 \u540e \u4e2d\u5348 \u3001 \u96e8 \u540e \u591a\u4e91 \u548c \u5c0f\u96e8 \u65e5\u843d \uff09 \u3002 \u6574\u4e2a \u5b9e\u9a8c \u96c6 \u5171\u6709 600 \u96c6 \u3002 \u6839\u636e \u4ee3\u7406 \u7684 \u6027\u80fd \uff0c CoRL 2017 \u53ef\u80fd \u9700\u8981 \u6700 \u591a 24 \u5c0f\u65f6 \u624d\u80fd \u4e3a Town01 \u6267\u884c \uff0c \u6700 \u591a 15 \u5c0f\u65f6 \u624d\u80fd \u4e3a Town02 \u6267\u884c \u3002","title":"\u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784"},{"location":"benchmark_structure/#_1","text":"\u4e0b\u56fe \u663e\u793a \u4e86 \u9a7e\u9a76 \u57fa\u51c6 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 \u56fe \uff1a \u4ee3\u7406 \u57fa\u51c6 \u6d4b\u8bd5 \u6a21\u5757 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 \u9a7e\u9a76 \u57fa\u51c6 \u662f \u8d1f\u8d23 \u8bc4\u4f30 \u5b9e\u9a8c \u5957\u4ef6 \u4e2d \u67d0\u4e2a \u4ee3\u7406 \u7684 \u6a21\u5757 \u3002 \u5b9e\u9a8c \u5957\u4ef6 \u662f \u4e00\u4e2a \u62bd\u8c61 \u6a21\u5757 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u5fc5\u987b \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u6d3e\u751f \u3002 \u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 CoRL2017 \u5957\u4ef6 \u548c \u4e00\u4e2a \u7b80\u5355 \u7684 \u5b9e\u9a8c \u5957\u4ef6 \u4f9b \u6d4b\u8bd5 \u3002 \u5b9e\u9a8c \u5957\u4ef6 \u7531 \u4e00\u7ec4 \u5b9e\u9a8c \u7ec4\u6210 \u3002 \u6bcf\u4e2a \u5b9e\u9a8c \u5305\u542b \u4e00\u4e2a \u7531 \u4e00\u7ec4 \u5bfc\u822a \u60c5\u8282 \u7ec4\u6210 \u7684 \u4efb\u52a1 \uff0c \u7531 \u4e00\u7ec4 \u59ff\u52bf \u8868\u793a \u3002 \u8fd9\u4e9b \u59ff\u52bf \u662f \u5305\u542b \u60c5\u8282 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5143\u7ec4 \u3002 \u5b9e\u9a8c \u8fd8 \u4e0e \u6761\u4ef6 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u6761\u4ef6 \u7531 carla \u8bbe\u7f6e \u5bf9\u8c61 \u8868\u793a \u3002 \u6761\u4ef6 \u6307\u5b9a \u6a21\u62df \u53c2\u6570 \uff0c \u4f8b\u5982 \uff1a \u5929\u6c14 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5957\u4ef6 \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u6570\u91cf \u7b49 \u3002 \u7528\u6237 \u8fd8 \u5e94\u8be5 \u6d3e\u751f \u4e00\u4e2a \u4ee3\u7406 \u7c7b \u3002 \u4ee3\u7406 \u662f \u5c06 \u5728 \u9a7e\u9a76 \u57fa\u51c6 \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u7684 \u4e3b\u52a8 \u90e8\u5206 \u3002 \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u8fd8 \u5305\u542b \u4e24\u4e2a \u8f85\u52a9 \u6a21\u5757 \u3002 \u8bb0\u5f55 \u6a21\u5757 \u7528\u4e8e \u8ddf\u8e2a \u6240\u6709 \u6d4b\u91cf \u503c \uff0c \u5e76 \u53ef \u7528\u4e8e \u6682\u505c \u548c \u7ee7\u7eed \u9a7e\u9a76 \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u6307\u6807 \u6a21\u5757 \u7528\u4e8e \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6d4b\u91cf \u503c \u8ba1\u7b97 \u6027\u80fd \u80fd\u6307 \u6307\u6807 \u6027\u80fd\u6307\u6807 \u3002","title":"\u9a7e\u9a76 \u57fa\u51c6 \u7ed3\u6784"},{"location":"benchmark_structure/#corl-2017","text":"\u6211\u4eec \u5df2\u7ecf \u63d0\u4f9b \u4e86 \u7528\u4e8e \u5bf9 CoRL 2017 \u8bba\u6587 \u7684 \u4ee3\u7406 \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u3002 CoRL 2017 \u5b9e\u9a8c \u5957\u4ef6 \u7684 \u7ec4\u6210 \u5982\u4e0b \uff1a \u6bcf\u4e2a CARLA \u57ce\u9547 \u5171 \u8fdb\u884c 24 \u4e2a \u5b9e\u9a8c \uff0c \u5305\u62ec \uff1a \u76f4\u884c \u7684 \u4efb\u52a1 \u3002 \u8fdb\u884c \u4e00\u6b21 \u8f6c\u5f2f \u7684 \u4efb\u52a1 \u3002 \u524d\u5f80 \u4efb\u610f \u4f4d\u7f6e \u7684 \u4efb\u52a1 \u3002 \u5e26 \u7740 \u52a8\u6001 \u7269\u4f53 \u524d\u5f80 \u4efb\u610f \u4f4d\u7f6e \u7684 \u4efb\u52a1 \u3002 \u6bcf\u4e2a \u4efb\u52a1 \u7531 25 \u4e2a \u59ff\u52bf \u7ec4\u6210 \uff0c \u5728 6 \u79cd \u4e0d\u540c \u7684 \u5929\u6c14 \u6761\u4ef6 \u4e0b \u91cd\u590d \u6267\u884c \uff08 \u6674\u6717 \u4e2d\u5348 \u3001 \u5927\u96e8 \u4e2d\u5348 \u3001 \u6674\u6717 \u65e5\u843d \u3001 \u96e8 \u540e \u4e2d\u5348 \u3001 \u96e8 \u540e \u591a\u4e91 \u548c \u5c0f\u96e8 \u65e5\u843d \uff09 \u3002 \u6574\u4e2a \u5b9e\u9a8c \u96c6 \u5171\u6709 600 \u96c6 \u3002 \u6839\u636e \u4ee3\u7406 \u7684 \u6027\u80fd \uff0c CoRL 2017 \u53ef\u80fd \u9700\u8981 \u6700 \u591a 24 \u5c0f\u65f6 \u624d\u80fd \u4e3a Town01 \u6267\u884c \uff0c \u6700 \u591a 15 \u5c0f\u65f6 \u624d\u80fd \u4e3a Town02 \u6267\u884c \u3002","title":"\u793a\u4f8b \uff1a CORL 2017"},{"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":"Bp library"},{"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 \u5728 Linux \u4e0a \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u6784\u5efa \u5728 Windows \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u6784\u5efa \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u79d1\u5b66 \u4e0a\u7f51 \u53c2\u8003 \u5176\u4e2d \u7684 \u4e00\u4e2a \u94fe\u63a5 \u8fdb\u884c \u79d1\u5b66 \u4e0a\u7f51 \u7684 \u8ba2\u9605 \u548c \u73af\u5883 \u914d\u7f6e \uff1a \u94fe\u63a5 1 \u3001 \u94fe\u63a5 2 \u3001 \u94fe\u63a5 3 \u3001 \u94fe\u63a5 4 \u3002 \u6bd4\u5982 \u4f7f\u7528 Clash \uff0c \u9996\u5148 \u5728 \u914d\u7f6e \u9875\u9762 \u4e0b \u6839\u636e \u8ba2\u9605 \u94fe\u63a5 \u8fdb\u884c \u4e0b\u8f7d \uff0c \u7136\u540e \u5728 \u5e38\u89c4 \u9875\u9762 \u5f00\u542f \u7cfb\u7edf \u4ee3\u7406 \uff0c \u6700\u540e \u6d4b\u8bd5 \u662f\u5426 \u53ef\u4ee5 \u6b63\u5e38 \u79d1\u5b66 \u4e0a\u7f51 \u3002 Ubuntu \u4e0b \u7684 \u914d\u7f6e Linux \u79d1\u5b66 \u4e0a\u7f51 \u914d\u7f6e \u6559\u7a0b \u3002 \u4e0b\u8f7d clash \u3002 \u9996\u6b21 \u542f\u52a8 clash \uff0c \u4f1a \u65b0\u5efa \u6587\u4ef6 ~ / . config / clash / config . yaml \uff1a cd $ HOME / . config / clash / \u5c06 Clash \u4e2d \u7684 \u8ba2\u9605 \u5730\u5740 \u5199\u5165 config . yaml \u6587\u4ef6 \u3002 \u6253\u5f00 Ubuntu \u7684 \u201c \u8bbe\u7f6e \u201d \u7ba1\u7406 \uff0c \u5728 \u201c \u7f51\u7edc \u201d \u5185 \u5c06 \u201c \u7f51\u7edc \u4ee3\u7406 \u201d \u7684 \u201c \u81ea\u52a8 \u201d \u6539\u4e3a \u201c \u624b\u52a8 \u201d \uff0c \u6839\u636e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u8fdb\u884c \u586b\u5199 HTTP \u3001 HTTPS \u548c Socks \u5730\u5740 # HTTP \u4ee3\u7406 127.0 . 0.1 : 7890 # HTTPS \u4ee3\u7406 127.0 . 0.1 : 7890 # Socks \u4e3b\u673a 127.0 . 0.1 : 7891 TortoiseGit \u7f51\u7edc \u4ee3\u7406 \u914d\u7f6e \u5982\u679c \u4f7f\u7528 TortoiseGit \u4f5c\u4e3a git \u7684 \u56fe\u5f62 \u56fe\u5f62\u5316 \u754c\u9762 \u8f6f\u4ef6 \uff0c \u9996\u9875 \u5728 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u7a7a\u767d \u4f4d\u7f6e \u53f3\u952e \uff0c \u9009\u62e9 TortoiseGit - > Setting \uff0c \u7136\u540e \u5728 \u5f39\u51fa \u7684 \u754c\u9762 \u8fdb\u884c \u5982\u4e0b \u914d\u7f6e \uff1a \u5176\u4ed6 \u865a\u5e7b \u5f15\u64ce commandlet \u865a\u5e7b \u5f15\u64ce \u7ba1\u7ebf","title":"\u4ece \u6e90\u4ee3\u7801 \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 \u5728 Linux \u4e0a \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u6784\u5efa \u5728 Windows \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u6784\u5efa \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa Carla"},{"location":"build_carla/#_1","text":"\u53c2\u8003 \u5176\u4e2d \u7684 \u4e00\u4e2a \u94fe\u63a5 \u8fdb\u884c \u79d1\u5b66 \u4e0a\u7f51 \u7684 \u8ba2\u9605 \u548c \u73af\u5883 \u914d\u7f6e \uff1a \u94fe\u63a5 1 \u3001 \u94fe\u63a5 2 \u3001 \u94fe\u63a5 3 \u3001 \u94fe\u63a5 4 \u3002 \u6bd4\u5982 \u4f7f\u7528 Clash \uff0c \u9996\u5148 \u5728 \u914d\u7f6e \u9875\u9762 \u4e0b \u6839\u636e \u8ba2\u9605 \u94fe\u63a5 \u8fdb\u884c \u4e0b\u8f7d \uff0c \u7136\u540e \u5728 \u5e38\u89c4 \u9875\u9762 \u5f00\u542f \u7cfb\u7edf \u4ee3\u7406 \uff0c \u6700\u540e \u6d4b\u8bd5 \u662f\u5426 \u53ef\u4ee5 \u6b63\u5e38 \u79d1\u5b66 \u4e0a\u7f51 \u3002","title":"\u79d1\u5b66 \u4e0a\u7f51 "},{"location":"build_carla/#ubuntu","text":"Linux \u79d1\u5b66 \u4e0a\u7f51 \u914d\u7f6e \u6559\u7a0b \u3002 \u4e0b\u8f7d clash \u3002 \u9996\u6b21 \u542f\u52a8 clash \uff0c \u4f1a \u65b0\u5efa \u6587\u4ef6 ~ / . config / clash / config . yaml \uff1a cd $ HOME / . config / clash / \u5c06 Clash \u4e2d \u7684 \u8ba2\u9605 \u5730\u5740 \u5199\u5165 config . yaml \u6587\u4ef6 \u3002 \u6253\u5f00 Ubuntu \u7684 \u201c \u8bbe\u7f6e \u201d \u7ba1\u7406 \uff0c \u5728 \u201c \u7f51\u7edc \u201d \u5185 \u5c06 \u201c \u7f51\u7edc \u4ee3\u7406 \u201d \u7684 \u201c \u81ea\u52a8 \u201d \u6539\u4e3a \u201c \u624b\u52a8 \u201d \uff0c \u6839\u636e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u8fdb\u884c \u586b\u5199 HTTP \u3001 HTTPS \u548c Socks \u5730\u5740 # HTTP \u4ee3\u7406 127.0 . 0.1 : 7890 # HTTPS \u4ee3\u7406 127.0 . 0.1 : 7890 # Socks \u4e3b\u673a 127.0 . 0.1 : 7891","title":"Ubuntu \u4e0b \u7684 \u914d\u7f6e"},{"location":"build_carla/#tortoisegit","text":"\u5982\u679c \u4f7f\u7528 TortoiseGit \u4f5c\u4e3a git \u7684 \u56fe\u5f62 \u56fe\u5f62\u5316 \u754c\u9762 \u8f6f\u4ef6 \uff0c \u9996\u9875 \u5728 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u7a7a\u767d \u4f4d\u7f6e \u53f3\u952e \uff0c \u9009\u62e9 TortoiseGit - > Setting \uff0c \u7136\u540e \u5728 \u5f39\u51fa \u7684 \u754c\u9762 \u8fdb\u884c \u5982\u4e0b \u914d\u7f6e \uff1a","title":"TortoiseGit \u7f51\u7edc \u4ee3\u7406 \u914d\u7f6e"},{"location":"build_carla/#_2","text":"\u865a\u5e7b \u5f15\u64ce commandlet \u865a\u5e7b \u5f15\u64ce \u7ba1\u7ebf","title":"\u5176\u4ed6"},{"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":"Build docker"},{"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 \u4e13\u4e1a \u95ee\u9898 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \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 osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9 \u7c7b\u578b \u8f6c\u6362 \u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9 \u94fe\u63a5 \u4e0d\u5230 osm2odr . lib \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 ValueError : sticky _ control : invalid value type \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 ) \u6ce8\u610f \uff1a \u6ce8\u610f vs2019 \u4e13\u4e1a \u4e13\u4e1a\u7248 \u624d \u6709 \u8fd9\u4e2a \u95ee\u9898 \uff0c vs2019 \u793e\u533a \u7248 \u6ca1\u6709 \u8fd9\u4e2a \u95ee\u9898 \u3002 \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 ValueError : sticky _ control : invalid value type \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \u7684 PythonAPI \u7248\u672c \u4e0d \u4e00\u81f4 \uff0c \u5728 dev \u5206\u652f \u5f00\u53d1 \u65f6\u4f1a \u51fa\u73b0 \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":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66","title":"\u4e13\u4e1a \u95ee\u9898"},{"location":"build_faq/#_3","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 osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9 \u7c7b\u578b \u8f6c\u6362 \u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9 \u94fe\u63a5 \u4e0d\u5230 osm2odr . lib","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 ValueError : sticky _ control : invalid value type","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#_4","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/#_5","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/#_6","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/#_7","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 ) \u6ce8\u610f \uff1a \u6ce8\u610f vs2019 \u4e13\u4e1a \u4e13\u4e1a\u7248 \u624d \u6709 \u8fd9\u4e2a \u95ee\u9898 \uff0c vs2019 \u793e\u533a \u7248 \u6ca1\u6709 \u8fd9\u4e2a \u95ee\u9898 \u3002","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/#_8","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/#_9","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/#valueerror-sticky_control-invalid-value-type","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \u7684 PythonAPI \u7248\u672c \u4e0d \u4e00\u81f4 \uff0c \u5728 dev \u5206\u652f \u5f00\u53d1 \u65f6\u4f1a \u51fa\u73b0 \u3002","title":"ValueError : sticky _ control : invalid value type "},{"location":"build_faq/#_10","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 \u5176\u4ed6 \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 24.04 # \u663e\u5361 \u9a71\u52a8 \u4f7f\u7528 nvidia - driver - 470 - server \uff08 \u8f6c\u6709 \uff09 # \u5df2\u7ecf \u5b89\u88c5 \u4e86 clang - 14 # sudo apt install g ++- 10 # sudo apt - get install clang ++- 10 # \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u5b89\u88c5 llvm - 10 sudo apt install gcc - multilib git clone -- branch release / 10 . x -- recursive https : / / github . com / llvm / llvm - project cd llvm - project / llvm cmake - G \" Unix Makefiles \" - DCMAKE _ BUILD _ TYPE = Release - DLLVM _ ENABLE _ PROJECTS = lld - DCMAKE _ INSTALL _ PREFIX = / usr / local / llvm - 10 .. make - j8 sudo make install # / usr / local / llvm - 10 / bin # \u7f16\u8bd1 clang - 10 \uff08 \u9ed8\u8ba4 LLVM \u7f16\u8bd1 \u5b8c \u6ca1\u6709 clang \uff09 # \u56de\u5230 llvm - project \u76ee\u5f55 cd llvm - project / clang / mkdir build cd build cmake - G \" Unix Makefiles \" - DCMAKE _ BUILD _ TYPE = Release - DCMAKE _ INSTALL _ PREFIX = / usr / local / clang - 10 .. make - j8 sudo make install # \u521b\u5efa \u8f6f \u94fe\u63a5 sudo ln - s / usr / local / clang - 10 / bin / clang ++ / usr / bin / clang ++ sudo ln - s / usr / local / clang - 10 / bin / clang / usr / bin / clang # \u68c0\u67e5 \u7248\u672c clang -- version # \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u5b89\u88c5 gcc - 7 wget http : / / ftp . gnu . org / gnu / gcc / gcc - 7.5 . 0 / gcc - 7.5 . 0 . tar . gz tar - zxvf gcc - 7.5 . 0 . tar . gz cd gcc - 7.5 . 0 mkdir build cd build .. / configure -- prefix = / usr / local / gcc - 7 # \u5f00\u59cb \u914d\u7f6e \u5b89\u88c5 # \u5982\u679c \u5b89\u88c5 \u7f3a\u5c11 \u7684 \u5e93 \uff0c \u5219 \u8fd0\u884c \u4e0b\u9762 \u8fd9 \u4e00\u6761 \u547d\u4ee4 sudo apt - get install libgmp - dev libmpfr - dev libmpc - dev gcc - multilib g ++- multilib # \u518d\u6b21 \u4f7f\u7528 \u4e0b\u9762 \u547d\u4ee4 \u6784\u5efa \u5b89\u88c5 \u73af\u5883 .. / configure -- enable - multilib # \u6784\u5efa \u5b8c\u6210 \u540e \u5f97\u5230 \u4e00\u4e2a Makefile \u6587\u4ef6 \u3002 \u5f00\u59cb \u7f16\u8bd1 make - j8 # - j \u9009\u9879 \u540e \u7684 \u6570\u5b57 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u673a\u5668 \u7684 \u903b\u8f91 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u6570\u91cf sudo make install # \u521b\u5efa \u8f6f \u94fe\u63a5 sudo ln - s / usr / local / clang - 10 / bin / clang ++ / usr / bin / g ++ sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / bin / clang ++- 14 180 sudo update - alternatives -- install / usr / bin / clang clang / usr / bin / clang - 14 180 sudo update - alternatives -- install / usr / bin / g ++ g ++ / usr / bin / g ++- 12 180 \u8b66\u544a \u6784\u5efa \u65f6 \u5bf9 Util / BuildTools / Setup . sh \u6240 \u505a \u7684 \u4fee\u6539 \uff1a 1 . \u6784\u5efa boost \u65f6 \uff0c \u6267\u884c . / bootstrap . sh \u7684 \u547d\u4ee4 \u4e2d \u53bb \u9664\u4e86 -- with - toolset = clang \u9009\u9879 \u3002 2 . \u5bf9 rcplib \u6267\u884c cmake \u65f6 \uff0c \u53bb \u9664\u4e86 - stdlib = lib c++ \u9009\u9879 \u3002 Ubuntu 22.04 sudo apt - add - repository \" deb http : / / archive . ubuntu . com / ubuntu focal main universe \" sudo apt - get update sudo apt - get install build - essential clang - 10 lld - 10 g ++- 7 cmake ninja - build libvulkan1 python python3 python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git git - lfs # update - alternatives \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 -- install \u8868\u793a \u5411 update - alternatives \u6ce8\u518c \u670d\u52a1 \u540d \u3002 # \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u6ce8\u518c \u6700\u7ec8 \u5730\u5740 \uff0c \u6210\u529f \u540e \u5c06 \u4f1a \u628a \u547d\u4ee4 \u5728 \u8fd9\u4e2a \u56fa\u5b9a \u7684 \u76ee\u7684 \u5730\u5740 \u505a \u771f\u5b9e \u547d\u4ee4 \u7684 \u8f6f\u94fe \uff0c \u4ee5\u540e \u7ba1\u7406 \u5c31\u662f \u7ba1\u7406 \u8fd9\u4e2a \u8f6f\u94fe \uff1b # \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \uff1a \u670d\u52a1 \u540d \uff0c \u4ee5\u540e \u7ba1\u7406 \u65f6\u4ee5 \u5b83 \u4e3a \u5173\u8054 \u4f9d\u636e \u3002 # \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u53c2\u6570 \uff0c \u88ab \u7ba1\u7406 \u7684 \u547d\u4ee4 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 # \u7b2c\u4e94 \u4e94\u4e2a \u7b2c\u4e94\u4e2a \u53c2\u6570 \uff0c \u4f18\u5148 \u4f18\u5148\u7ea7 \uff0c \u6570\u5b57 \u8d8a\u5927 \u4f18\u5148 \u4f18\u5148\u7ea7 \u8d8a\u9ad8 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 10 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 10 / bin / clang 180 && sudo update - alternatives -- install / usr / bin / g ++ g ++ / usr / bin / g ++- 7 180 Ubuntu 20.04 sudo apt - add - repository \" deb http : / / apt . llvm . org / focal / llvm - toolchain - focal main \" sudo apt - get update sudo apt - get install build - essential clang - 10 lld - 10 g ++- 7 cmake ninja - build libvulkan1 python python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 10 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 10 / bin / clang 180 Ubuntu 18.04 . sudo apt - add - repository \" deb http : / / apt . llvm . org / bionic / llvm - toolchain - bionic main \" sudo apt - get update 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 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 Ubuntu 16.04 . sudo apt - add - repository \" deb http : / / apt . llvm . org / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update 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 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 \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 make check \u8fdb\u884c \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \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 \u95ee\u9898 \u6267\u884c make Python \u65f6\u62a5 \u9519 \uff1a A C++ 11 capable compiler is required for building the B2 engine . Toolset ' clang ' does not appear to support C++ 11 . \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 \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa"},{"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 \u5176\u4ed6","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 24.04 # \u663e\u5361 \u9a71\u52a8 \u4f7f\u7528 nvidia - driver - 470 - server \uff08 \u8f6c\u6709 \uff09 # \u5df2\u7ecf \u5b89\u88c5 \u4e86 clang - 14 # sudo apt install g ++- 10 # sudo apt - get install clang ++- 10 # \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u5b89\u88c5 llvm - 10 sudo apt install gcc - multilib git clone -- branch release / 10 . x -- recursive https : / / github . com / llvm / llvm - project cd llvm - project / llvm cmake - G \" Unix Makefiles \" - DCMAKE _ BUILD _ TYPE = Release - DLLVM _ ENABLE _ PROJECTS = lld - DCMAKE _ INSTALL _ PREFIX = / usr / local / llvm - 10 .. make - j8 sudo make install # / usr / local / llvm - 10 / bin # \u7f16\u8bd1 clang - 10 \uff08 \u9ed8\u8ba4 LLVM \u7f16\u8bd1 \u5b8c \u6ca1\u6709 clang \uff09 # \u56de\u5230 llvm - project \u76ee\u5f55 cd llvm - project / clang / mkdir build cd build cmake - G \" Unix Makefiles \" - DCMAKE _ BUILD _ TYPE = Release - DCMAKE _ INSTALL _ PREFIX = / usr / local / clang - 10 .. make - j8 sudo make install # \u521b\u5efa \u8f6f \u94fe\u63a5 sudo ln - s / usr / local / clang - 10 / bin / clang ++ / usr / bin / clang ++ sudo ln - s / usr / local / clang - 10 / bin / clang / usr / bin / clang # \u68c0\u67e5 \u7248\u672c clang -- version # \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u5b89\u88c5 gcc - 7 wget http : / / ftp . gnu . org / gnu / gcc / gcc - 7.5 . 0 / gcc - 7.5 . 0 . tar . gz tar - zxvf gcc - 7.5 . 0 . tar . gz cd gcc - 7.5 . 0 mkdir build cd build .. / configure -- prefix = / usr / local / gcc - 7 # \u5f00\u59cb \u914d\u7f6e \u5b89\u88c5 # \u5982\u679c \u5b89\u88c5 \u7f3a\u5c11 \u7684 \u5e93 \uff0c \u5219 \u8fd0\u884c \u4e0b\u9762 \u8fd9 \u4e00\u6761 \u547d\u4ee4 sudo apt - get install libgmp - dev libmpfr - dev libmpc - dev gcc - multilib g ++- multilib # \u518d\u6b21 \u4f7f\u7528 \u4e0b\u9762 \u547d\u4ee4 \u6784\u5efa \u5b89\u88c5 \u73af\u5883 .. / configure -- enable - multilib # \u6784\u5efa \u5b8c\u6210 \u540e \u5f97\u5230 \u4e00\u4e2a Makefile \u6587\u4ef6 \u3002 \u5f00\u59cb \u7f16\u8bd1 make - j8 # - j \u9009\u9879 \u540e \u7684 \u6570\u5b57 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u673a\u5668 \u7684 \u903b\u8f91 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u6570\u91cf sudo make install # \u521b\u5efa \u8f6f \u94fe\u63a5 sudo ln - s / usr / local / clang - 10 / bin / clang ++ / usr / bin / g ++ sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / bin / clang ++- 14 180 sudo update - alternatives -- install / usr / bin / clang clang / usr / bin / clang - 14 180 sudo update - alternatives -- install / usr / bin / g ++ g ++ / usr / bin / g ++- 12 180 \u8b66\u544a \u6784\u5efa \u65f6 \u5bf9 Util / BuildTools / Setup . sh \u6240 \u505a \u7684 \u4fee\u6539 \uff1a 1 . \u6784\u5efa boost \u65f6 \uff0c \u6267\u884c . / bootstrap . sh \u7684 \u547d\u4ee4 \u4e2d \u53bb \u9664\u4e86 -- with - toolset = clang \u9009\u9879 \u3002 2 . \u5bf9 rcplib \u6267\u884c cmake \u65f6 \uff0c \u53bb \u9664\u4e86 - stdlib = lib c++ \u9009\u9879 \u3002 Ubuntu 22.04 sudo apt - add - repository \" deb http : / / archive . ubuntu . com / ubuntu focal main universe \" sudo apt - get update sudo apt - get install build - essential clang - 10 lld - 10 g ++- 7 cmake ninja - build libvulkan1 python python3 python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git git - lfs # update - alternatives \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 -- install \u8868\u793a \u5411 update - alternatives \u6ce8\u518c \u670d\u52a1 \u540d \u3002 # \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u6ce8\u518c \u6700\u7ec8 \u5730\u5740 \uff0c \u6210\u529f \u540e \u5c06 \u4f1a \u628a \u547d\u4ee4 \u5728 \u8fd9\u4e2a \u56fa\u5b9a \u7684 \u76ee\u7684 \u5730\u5740 \u505a \u771f\u5b9e \u547d\u4ee4 \u7684 \u8f6f\u94fe \uff0c \u4ee5\u540e \u7ba1\u7406 \u5c31\u662f \u7ba1\u7406 \u8fd9\u4e2a \u8f6f\u94fe \uff1b # \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \uff1a \u670d\u52a1 \u540d \uff0c \u4ee5\u540e \u7ba1\u7406 \u65f6\u4ee5 \u5b83 \u4e3a \u5173\u8054 \u4f9d\u636e \u3002 # \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u53c2\u6570 \uff0c \u88ab \u7ba1\u7406 \u7684 \u547d\u4ee4 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 # \u7b2c\u4e94 \u4e94\u4e2a \u7b2c\u4e94\u4e2a \u53c2\u6570 \uff0c \u4f18\u5148 \u4f18\u5148\u7ea7 \uff0c \u6570\u5b57 \u8d8a\u5927 \u4f18\u5148 \u4f18\u5148\u7ea7 \u8d8a\u9ad8 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 10 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 10 / bin / clang 180 && sudo update - alternatives -- install / usr / bin / g ++ g ++ / usr / bin / g ++- 7 180 Ubuntu 20.04 sudo apt - add - repository \" deb http : / / apt . llvm . org / focal / llvm - toolchain - focal main \" sudo apt - get update sudo apt - get install build - essential clang - 10 lld - 10 g ++- 7 cmake ninja - build libvulkan1 python python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 10 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 10 / bin / clang 180 Ubuntu 18.04 . sudo apt - add - repository \" deb http : / / apt . llvm . org / bionic / llvm - toolchain - bionic main \" sudo apt - get update 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 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 Ubuntu 16.04 . sudo apt - add - repository \" deb http : / / apt . llvm . org / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update 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 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 \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 make check \u8fdb\u884c \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5","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","title":"\u5176\u4ed6 "},{"location":"build_linux/#_8","text":"\u6267\u884c make Python \u65f6\u62a5 \u9519 \uff1a A C++ 11 capable compiler is required for building the B2 engine . Toolset ' clang ' does not appear to support C++ 11 . \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":"\u95ee\u9898"},{"location":"build_linux_ue5/","text":"\u8b66\u544a \u8fd9\u662f \u4e00\u9879 \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff01 \uff01 \u8fd9\u4e2a \u7248\u672c \u7684 Carla \u4e0d \u88ab \u8ba4\u4e3a \u662f \u4e00\u4e2a \u7a33\u5b9a \u7684 \u7248\u672c \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u51e0\u4e2a \u6708 \u91cc \uff0c \u8fd9\u4e2a \u5206\u652f \u53ef\u80fd \u4f1a \u53d1\u751f \u8bb8\u591a \u91cd\u5927 \u53d8\u5316 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u7834\u574f \u60a8 \u6240 \u505a \u7684 \u4efb\u4f55 \u4fee\u6539 \u3002 \u6211\u4eec \u5efa\u8bae \u4f60 \u628a \u8fd9\u4e2a \u5206\u652f \u5f53\u4f5c \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 \u3002 \u5728 Linux \u4e2d \u4f7f\u7528 Unreal Engine 5.3 \u6784\u5efa \u7b14\u8bb0 \u8fd9\u4e2a \u6784\u5efa \u8fc7\u7a0b \u662f \u4e3a Ubuntu 22.04 \u5b9e\u73b0 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u8fd9\u4e2a Ubuntu \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4f7f\u7528 Unreal Engine 5.3 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u5728 \u60a8 \u7684 \u672c\u5730 \u673a\u5668 \u4e0a \u514b\u9686 Carla \u7684 ue5 - dev \u5206\u652f \uff1a git clone - b ue5 - dev https : / / github . com / carla - simulator / carla . git CarlaUE5 \u8fd0\u884c \u5b89\u88c5 \u811a\u672c \uff1a cd CarlaUE5 bash - x Setup . sh Setup . sh \u811a\u672c \u5b89\u88c5 \u6240\u6709 \u5fc5\u9700 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u5305\u62ec Cmake \u3001 debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3001 Python \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u548c Unreal Engine 5.3 \u3002 \u5b83 \u8fd8 \u4e0b\u8f7d Carla \u5185\u5bb9 \u5e76 \u6784\u5efa Carla \u3002 \u56e0\u6b64 \uff0c \u6b64 \u811a\u672c \u53ef\u80fd \u9700\u8981 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u6ce8\u610f \uff1a * \u8fd9\u4e2a \u7248\u672c \u7684 Carla \u9700\u8981 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce 5.3 \u7684 Carla \u5206\u53c9 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u514b\u9686 UE \u5b58\u50a8 \u5e93 \u7684 \u6743\u9650 \uff0c \u60a8 \u9700\u8981 \u5c06 GitHub \u5e10\u6237 \u94fe\u63a5 \u5230 Epic Games \u3002 \u5982\u679c \u60a8 \u5c1a\u672a \u94fe\u63a5 \u60a8 \u7684 \u5e10\u6237 \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002 \u8981 \u4f7f\u7528 Carla Unreal Engine 5 \u4ee5\u524d \u7684 \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5b9a\u4e49 \u4e86 \u6307\u5411 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u5b9a\u4e49 \u7684 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u6b64 \u53d8\u91cf \uff0c Setup . sh \u811a\u672c \u5c06 \u4e0b\u8f7d \u5e76 \u6784\u5efa Carla Unreal Engine 5 \uff0c \u8fd9 \u9700\u8981 \u989d\u5916 1 \u4e2a \u591a \u5c0f\u65f6 \u7684 \u6784\u5efa \u548c 225Gb \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Setup . sh \u811a\u672c \u68c0\u67e5 PATH \u53d8\u91cf \u9876\u90e8 \u662f\u5426 \u5b89\u88c5 \u4e86 \u4efb\u4f55 Python \uff0c \u5426\u5219 \u5b89\u88c5 Python \u3002 \u8981 \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5728 \u8fd0\u884c \u811a\u672c \u4e4b\u524d \u4e3a Python \u6b63\u786e \u8bbe\u7f6e \u4e86 PATH \u53d8\u91cf \u3002 Carla \u4e0d\u80fd \u5728 \u5916\u90e8 \u78c1\u76d8 \u4e0a \u6784\u5efa \uff0c Ubuntu \u6ca1\u6709 \u4e3a \u6784\u5efa \u63d0\u4f9b \u6240 \u9700 \u7684 \u8bfb / \u5199 / \u6267\u884c \u6743\u9650 \u3002 \u6784\u5efa \u5e76 \u8fd0\u884c Carla UE5 \u5b89\u88c5 \u811a\u672c \u672c\u8eab \u542f\u52a8 \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e00\u65e6 \u4fee\u6539 \u4ee3\u7801 \u5e76 \u5e0c\u671b \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a \u914d\u7f6e \uff1a cmake - G Ninja - S . - B Build -- toolchain = $ PWD / CMake / LinuxToolchain . cmake \\ - DLAUNCH _ ARGS = \" - prefernvidia \" - DCMAKE _ BUILD _ TYPE = Release - DENABLE _ ROS2 = ON \\ - DBUILD _ CARLA _ UNREAL = ON - DCARLA _ UNREAL _ ENGINE _ PATH = $ CARLA _ UNREAL _ ENGINE _ PATH \u6784\u5efa Carla : cmake -- build Build \u6784\u5efa \u5e76 \u5b89\u88c5 Python API \uff1a cmake -- build Build -- target carla - python - api - install \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff1a cmake -- build Build -- target launch \u4f7f\u7528 CARLA UE5 \u6784\u5efa \u5305 cmake -- build Build -- target package \u8be5 \u5305\u4f1a \u5728 \u76ee\u5f55 $ CARLA _ PATH / Build / Package \u4e0b \u751f\u6210 \u3002 \u8fd0\u884c \u5305 \u4f7f\u7528 \u4e0b\u5217 \u547d\u4ee4 \u8fd0\u884c \u5305 \u3002 . / CarlaUnreal . sh \u5982\u679c \u4f60 \u60f3 \u8fd0\u884c \u539f\u751f \u7684 ROS2 \u63a5\u53e3 \uff0c \u6dfb\u52a0 -- ros2 \u547d\u4ee4 . / CarlaUnreal . sh -- ros2 \u5982\u679c \u60a8 \u60f3\u8981 \u5b89\u88c5 \u4e0e \u60a8 \u6240 \u6784\u5efa \u7684 \u5305 \u76f8\u5bf9 \u5e94 \u7684 Python API \uff1a pip3 install PythonAPI / carla / dist / carla - * . whl \u95ee\u9898 \u7cfb\u7edf \u5b89\u88c5 Ubuntu 20.04 \u6ca1\u6709 g ++- 12 \u7684 \u6e90 \uff0c \u53ea\u6709 g ++- 9 \u7684 \u6e90 \u3002 \u800c Ubuntu 22.04 \u6709 g ++- 12 \u7684 \u6e90 \u3002 \u89e3\u51b3 ubuntu \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u5b89\u88c5 \u754c\u9762 \u9ed1\u5c4f \u7684 \u95ee\u9898 \uff1a u \u76d8 \u542f\u52a8 \u8fc7\u7a0b \u4e2d \uff0c \u4f1a \u51fa\u73b0 \u9009\u62e9 \u754c\u9762 \uff0c try ubuntu \u3001 install ubuntu \u7b49 \uff0c \u6b64\u65f6 \u70b9 \u201c e \u201d \u952e \uff0c \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u9ed1\u6846 \uff0c \u6b64\u65f6 \u5728 \u5012\u6570 \u7b2c\u4e8c \u4e8c\u884c \u7b2c\u4e8c\u884c \u5de6\u53f3 \uff0c \u627e\u5230 quiet splash - - - \u6539\u6210 quiet splash acpi = off \u518d\u6b21 \u542f\u52a8 \u65f6 \uff0c \u4ecd\u7136 \u4f1a \u9ed1\u5c4f \uff0c \u8fdb\u4e0d\u53bb \u3002 \u9700\u8981 \u7981\u7528 nouveau \uff0c \u7136\u540e \u518d \u8fdb\u5165 \u7cfb\u7edf \u4e2d \u5b89\u88c5 \u663e\u5361 \u9a71\u52a8 \u3002 vi / etc / modprobe . d / blacklist . conf \u6700\u540e \u4e00\u884c \u52a0\u4e0a blacklist nouveau \u3002 \u4f7f \u4e4b \u751f\u6548 \uff1a update - initramfs - u \u7136\u540e \u8f93\u5165 reboot \u91cd\u542f \u3002 \u7f16\u8bd1 bin / clang \" is not able to compile a simple test program . clang ++ -- version \u786e\u5b9a clang \u6ca1\u6709 \u5b89\u88c5 \uff0c \u6267\u884c \uff1a sudo apt - get install clang \u8fd8\u662f \u627e \u4e0d\u5230 \uff01 \uff01 \uff01 Carla \u5207\u6362 \u5230 ue5 - dev \u5206\u652f \uff1a git checkout - b ue5 - dev origin / ue5 - dev bash - x \u4e2d \u7684 \u53c2\u6570 - x \u4f1a \u5217\u51fa shell \u6307\u5b9a \u8bed\u53e5 \u7684 \u987a\u5e8f \u5e76 \u5c06 \u5176 \u6253\u5370 \u3002 \u62a5\u9519 \uff1a error : externally - managed - environment \u539f\u56e0 \uff1a \u8868\u793a \u5f53\u524d Python \u73af\u5883 \u662f \u7531 \u7cfb\u7edf \u5916\u90e8 \u7ba1\u7406 \u7684 \uff0c \u901a\u5e38 \u5728 \u67d0\u4e9b Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \uff08 \u5c24\u5176 \u662f Debian \u548c \u57fa\u4e8e Debian \u7684 \u7cfb\u7edf \uff0c \u6bd4\u5982 Ubuntu \uff09 \uff0c \u7cfb\u7edf \u4f1a \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4e0d\u8981 \u76f4\u63a5 \u4f7f\u7528 pip \u6765 \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u4ee5 \u907f\u514d \u4e0e \u7cfb\u7edf \u5305 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff08 \u5982 apt \uff09 \u7684 \u6f5c\u5728 \u51b2\u7a81 \u3002 \u89e3\u51b3 \uff1a \u65b0\u5efa Python \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 cmake \u65f6\u5019 \u62a5\u9519 \uff1a cannot find / lib64 / ld - linux - x86 - 64 . so.2","title":"Build linux ue5"},{"location":"build_linux_ue5/#linux-unreal-engine-53","text":"\u7b14\u8bb0 \u8fd9\u4e2a \u6784\u5efa \u8fc7\u7a0b \u662f \u4e3a Ubuntu 22.04 \u5b9e\u73b0 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u8fd9\u4e2a Ubuntu \u7248\u672c \u3002","title":"\u5728 Linux \u4e2d \u4f7f\u7528 Unreal Engine 5.3 \u6784\u5efa"},{"location":"build_linux_ue5/#_1","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4f7f\u7528 Unreal Engine 5.3 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u5728 \u60a8 \u7684 \u672c\u5730 \u673a\u5668 \u4e0a \u514b\u9686 Carla \u7684 ue5 - dev \u5206\u652f \uff1a git clone - b ue5 - dev https : / / github . com / carla - simulator / carla . git CarlaUE5 \u8fd0\u884c \u5b89\u88c5 \u811a\u672c \uff1a cd CarlaUE5 bash - x Setup . sh Setup . sh \u811a\u672c \u5b89\u88c5 \u6240\u6709 \u5fc5\u9700 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u5305\u62ec Cmake \u3001 debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3001 Python \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u548c Unreal Engine 5.3 \u3002 \u5b83 \u8fd8 \u4e0b\u8f7d Carla \u5185\u5bb9 \u5e76 \u6784\u5efa Carla \u3002 \u56e0\u6b64 \uff0c \u6b64 \u811a\u672c \u53ef\u80fd \u9700\u8981 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u6ce8\u610f \uff1a * \u8fd9\u4e2a \u7248\u672c \u7684 Carla \u9700\u8981 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce 5.3 \u7684 Carla \u5206\u53c9 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u514b\u9686 UE \u5b58\u50a8 \u5e93 \u7684 \u6743\u9650 \uff0c \u60a8 \u9700\u8981 \u5c06 GitHub \u5e10\u6237 \u94fe\u63a5 \u5230 Epic Games \u3002 \u5982\u679c \u60a8 \u5c1a\u672a \u94fe\u63a5 \u60a8 \u7684 \u5e10\u6237 \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002 \u8981 \u4f7f\u7528 Carla Unreal Engine 5 \u4ee5\u524d \u7684 \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5b9a\u4e49 \u4e86 \u6307\u5411 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u5b9a\u4e49 \u7684 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u6b64 \u53d8\u91cf \uff0c Setup . sh \u811a\u672c \u5c06 \u4e0b\u8f7d \u5e76 \u6784\u5efa Carla Unreal Engine 5 \uff0c \u8fd9 \u9700\u8981 \u989d\u5916 1 \u4e2a \u591a \u5c0f\u65f6 \u7684 \u6784\u5efa \u548c 225Gb \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Setup . sh \u811a\u672c \u68c0\u67e5 PATH \u53d8\u91cf \u9876\u90e8 \u662f\u5426 \u5b89\u88c5 \u4e86 \u4efb\u4f55 Python \uff0c \u5426\u5219 \u5b89\u88c5 Python \u3002 \u8981 \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5728 \u8fd0\u884c \u811a\u672c \u4e4b\u524d \u4e3a Python \u6b63\u786e \u8bbe\u7f6e \u4e86 PATH \u53d8\u91cf \u3002 Carla \u4e0d\u80fd \u5728 \u5916\u90e8 \u78c1\u76d8 \u4e0a \u6784\u5efa \uff0c Ubuntu \u6ca1\u6709 \u4e3a \u6784\u5efa \u63d0\u4f9b \u6240 \u9700 \u7684 \u8bfb / \u5199 / \u6267\u884c \u6743\u9650 \u3002","title":"\u8bbe\u7f6e \u73af\u5883"},{"location":"build_linux_ue5/#carla-ue5","text":"\u5b89\u88c5 \u811a\u672c \u672c\u8eab \u542f\u52a8 \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e00\u65e6 \u4fee\u6539 \u4ee3\u7801 \u5e76 \u5e0c\u671b \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a \u914d\u7f6e \uff1a cmake - G Ninja - S . - B Build -- toolchain = $ PWD / CMake / LinuxToolchain . cmake \\ - DLAUNCH _ ARGS = \" - prefernvidia \" - DCMAKE _ BUILD _ TYPE = Release - DENABLE _ ROS2 = ON \\ - DBUILD _ CARLA _ UNREAL = ON - DCARLA _ UNREAL _ ENGINE _ PATH = $ CARLA _ UNREAL _ ENGINE _ PATH \u6784\u5efa Carla : cmake -- build Build \u6784\u5efa \u5e76 \u5b89\u88c5 Python API \uff1a cmake -- build Build -- target carla - python - api - install \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff1a cmake -- build Build -- target launch","title":"\u6784\u5efa \u5e76 \u8fd0\u884c Carla UE5"},{"location":"build_linux_ue5/#carla-ue5_1","text":"cmake -- build Build -- target package \u8be5 \u5305\u4f1a \u5728 \u76ee\u5f55 $ CARLA _ PATH / Build / Package \u4e0b \u751f\u6210 \u3002","title":"\u4f7f\u7528 CARLA UE5 \u6784\u5efa \u5305"},{"location":"build_linux_ue5/#_2","text":"\u4f7f\u7528 \u4e0b\u5217 \u547d\u4ee4 \u8fd0\u884c \u5305 \u3002 . / CarlaUnreal . sh \u5982\u679c \u4f60 \u60f3 \u8fd0\u884c \u539f\u751f \u7684 ROS2 \u63a5\u53e3 \uff0c \u6dfb\u52a0 -- ros2 \u547d\u4ee4 . / CarlaUnreal . sh -- ros2 \u5982\u679c \u60a8 \u60f3\u8981 \u5b89\u88c5 \u4e0e \u60a8 \u6240 \u6784\u5efa \u7684 \u5305 \u76f8\u5bf9 \u5e94 \u7684 Python API \uff1a pip3 install PythonAPI / carla / dist / carla - * . whl","title":"\u8fd0\u884c \u5305"},{"location":"build_linux_ue5/#_3","text":"","title":"\u95ee\u9898"},{"location":"build_linux_ue5/#_4","text":"Ubuntu 20.04 \u6ca1\u6709 g ++- 12 \u7684 \u6e90 \uff0c \u53ea\u6709 g ++- 9 \u7684 \u6e90 \u3002 \u800c Ubuntu 22.04 \u6709 g ++- 12 \u7684 \u6e90 \u3002 \u89e3\u51b3 ubuntu \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u5b89\u88c5 \u754c\u9762 \u9ed1\u5c4f \u7684 \u95ee\u9898 \uff1a u \u76d8 \u542f\u52a8 \u8fc7\u7a0b \u4e2d \uff0c \u4f1a \u51fa\u73b0 \u9009\u62e9 \u754c\u9762 \uff0c try ubuntu \u3001 install ubuntu \u7b49 \uff0c \u6b64\u65f6 \u70b9 \u201c e \u201d \u952e \uff0c \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u9ed1\u6846 \uff0c \u6b64\u65f6 \u5728 \u5012\u6570 \u7b2c\u4e8c \u4e8c\u884c \u7b2c\u4e8c\u884c \u5de6\u53f3 \uff0c \u627e\u5230 quiet splash - - - \u6539\u6210 quiet splash acpi = off \u518d\u6b21 \u542f\u52a8 \u65f6 \uff0c \u4ecd\u7136 \u4f1a \u9ed1\u5c4f \uff0c \u8fdb\u4e0d\u53bb \u3002 \u9700\u8981 \u7981\u7528 nouveau \uff0c \u7136\u540e \u518d \u8fdb\u5165 \u7cfb\u7edf \u4e2d \u5b89\u88c5 \u663e\u5361 \u9a71\u52a8 \u3002 vi / etc / modprobe . d / blacklist . conf \u6700\u540e \u4e00\u884c \u52a0\u4e0a blacklist nouveau \u3002 \u4f7f \u4e4b \u751f\u6548 \uff1a update - initramfs - u \u7136\u540e \u8f93\u5165 reboot \u91cd\u542f \u3002","title":"\u7cfb\u7edf \u5b89\u88c5"},{"location":"build_linux_ue5/#_5","text":"bin / clang \" is not able to compile a simple test program . clang ++ -- version \u786e\u5b9a clang \u6ca1\u6709 \u5b89\u88c5 \uff0c \u6267\u884c \uff1a sudo apt - get install clang \u8fd8\u662f \u627e \u4e0d\u5230 \uff01 \uff01 \uff01","title":"\u7f16\u8bd1"},{"location":"build_linux_ue5/#carla","text":"\u5207\u6362 \u5230 ue5 - dev \u5206\u652f \uff1a git checkout - b ue5 - dev origin / ue5 - dev bash - x \u4e2d \u7684 \u53c2\u6570 - x \u4f1a \u5217\u51fa shell \u6307\u5b9a \u8bed\u53e5 \u7684 \u987a\u5e8f \u5e76 \u5c06 \u5176 \u6253\u5370 \u3002 \u62a5\u9519 \uff1a error : externally - managed - environment \u539f\u56e0 \uff1a \u8868\u793a \u5f53\u524d Python \u73af\u5883 \u662f \u7531 \u7cfb\u7edf \u5916\u90e8 \u7ba1\u7406 \u7684 \uff0c \u901a\u5e38 \u5728 \u67d0\u4e9b Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \uff08 \u5c24\u5176 \u662f Debian \u548c \u57fa\u4e8e Debian \u7684 \u7cfb\u7edf \uff0c \u6bd4\u5982 Ubuntu \uff09 \uff0c \u7cfb\u7edf \u4f1a \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4e0d\u8981 \u76f4\u63a5 \u4f7f\u7528 pip \u6765 \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u4ee5 \u907f\u514d \u4e0e \u7cfb\u7edf \u5305 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff08 \u5982 apt \uff09 \u7684 \u6f5c\u5728 \u51b2\u7a81 \u3002 \u89e3\u51b3 \uff1a \u65b0\u5efa Python \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 cmake \u65f6\u5019 \u62a5\u9519 \uff1a cannot find / lib64 / ld - linux - x86 - 64 . so.2","title":"Carla"},{"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 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c carla _ server . lib carla _ server . lib \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":"\u6784\u5efa \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 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c carla _ server . lib carla _ server . lib \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_tools/","text":"Package . bat % UE4 _ ROOT% \\ Engine \\ Build \\ BatchFiles \\ Build . bat \u4f20\u9012 \u7684 \u53c2\u6570 \u5305\u62ec \uff1a * \u53c2\u6570 1 \uff1a \u6e38\u620f \u540d \uff08 CarlaUE4Editor \u3001 CarlaUE4 \uff09 * \u53c2\u6570 2 \uff1a \u5e73\u53f0 \u540d \uff08 Win64 \uff09 * \u53c2\u6570 3 \uff1a \u914d\u7f6e \u540d \uff08 Development \uff09 * - WaitMutex \uff1a \u662f\u5426 \u9700\u8981 \u7b49\u5f85 \u5176\u4ed6 \u9501 \u64cd\u4f5c \u6267\u884c \u5b8c \uff08 \u9ed8\u8ba4 \u662f False \uff09 * - FromMsBuild \uff1a \u662f\u5426 \u628a MSBuild \u7684 Log \u4e5f \u6253\u5370 \u5230 UBT \u7684 log \u7cfb\u7edf \u7684 \u8f93\u51fa \u4e2d \uff08 \u9ed8\u8ba4 \u662f false \uff09 * % ROOT _ PATH% Unreal / CarlaUE4 / CarlaUE4 . uproject \u81ea\u52a8 \u81ea\u52a8\u5316 \u5de5\u5177 % UE4 _ ROOT% \\ Engine \\ Build \\ BatchFiles \\ RunUAT . bat ( Unreal Automation Tool ) \u4f20\u9012 \u7684 \u53c2\u6570 \u5305\u62ec \uff1a * BuildCookRun \uff1a \u6784\u5efa \uff08 Build \uff09 \uff1a \u8be5 \u9636\u6bb5 \u5c06 \u4e3a \u6240 \u9009\u62e9 \u7684 \u5e73\u53f0 \u7f16\u8bd1 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u70d8\u57f9 \uff08 Cook \uff09 \uff1a \u8be5 \u9636\u6bb5 \u901a\u8fc7 \u5728 \u7279\u6b8a \u6a21\u5f0f \u4e0b \u6267\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u6765 \u8f6c\u5316 \u5185\u5bb9 \u3002 \u8fd0\u884c \uff08 Run \uff09 \uff1a \u8be5 \u9636\u6bb5 \u5728 \u76ee\u6807 \u5e73\u53f0 \u4e0a \u542f\u52a8 \u5df2 \u5c01\u88c5 \u7684 \u9879\u76ee \u3002 * nocompileeditor \uff1a \u4e0d \u5305\u62ec \u7f16\u8bd1 \u597d \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff1f * - TargetPlatform = Win64 \uff1a \u7f16\u8bd1 \u8bd1\u6210 \u7f16\u8bd1\u6210 \u7684 \u76ee\u6807 \u6587\u4ef6 * - Platform = Win64 \uff1a \u6240\u5728 \u6240\u5728\u5730 \u5e73\u53f0 * - installed * - nop4 \uff1a \u5728 \u6b64 \u6784\u5efa \u671f\u95f4 \u4e0d\u60f3 \u4e0e Perforce \u4ea4\u4e92 \uff08 \u76f8\u53cd \u662f \uff1a - P4 \uff09 * - project = \" % ROOT _ PATH% Unreal / CarlaUE4 / CarlaUE4 . uproject \" * - cook \uff1a \u8981 \u8fd0\u884c \u70d8\u57f9 \u6b65\u9aa4 * - stage \uff1a \u5c06 \u70d8\u57f9 \u7ed3\u679c \u4fdd\u5b58 \u5728 \u6682\u5b58 \u76ee\u5f55 \u4e2d * - build \uff1a \u8981 \u8fd0\u884c \u6784\u5efa \u6b65\u9aa4 * - archive \uff1a \u5e0c\u671b \u5c06 \u76ee\u5f55 \u4e2d \u7684 \u5b8c\u6574 \u8f93\u51fa \u5f52\u6863 * - archivedirectory = \" ! BUILD _ FOLDER ! \" \uff1a \u5f52\u6863 \u9879\u76ee \u7684 \u8def\u5f84 * - package \uff1a \u4e3a \u76ee\u6807 \u5e73\u53f0 \u521b\u5efa \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff08 \u4f8b\u5982 Mac \u4e0a \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6587\u4ef6 \uff0c Android \u4e0a \u7684 apk \u6216 iPhone \u4e0a \u7684 ipa \uff09 * - clientconfig = % PACKAGE _ CONFIG% \u53c2\u8003 UnrealBuildTool \u529f\u80fd \u6d41\u7a0b \u89e3\u6790","title":"Build tools"},{"location":"build_tools/#packagebat","text":"% UE4 _ ROOT% \\ Engine \\ Build \\ BatchFiles \\ Build . bat \u4f20\u9012 \u7684 \u53c2\u6570 \u5305\u62ec \uff1a * \u53c2\u6570 1 \uff1a \u6e38\u620f \u540d \uff08 CarlaUE4Editor \u3001 CarlaUE4 \uff09 * \u53c2\u6570 2 \uff1a \u5e73\u53f0 \u540d \uff08 Win64 \uff09 * \u53c2\u6570 3 \uff1a \u914d\u7f6e \u540d \uff08 Development \uff09 * - WaitMutex \uff1a \u662f\u5426 \u9700\u8981 \u7b49\u5f85 \u5176\u4ed6 \u9501 \u64cd\u4f5c \u6267\u884c \u5b8c \uff08 \u9ed8\u8ba4 \u662f False \uff09 * - FromMsBuild \uff1a \u662f\u5426 \u628a MSBuild \u7684 Log \u4e5f \u6253\u5370 \u5230 UBT \u7684 log \u7cfb\u7edf \u7684 \u8f93\u51fa \u4e2d \uff08 \u9ed8\u8ba4 \u662f false \uff09 * % ROOT _ PATH% Unreal / CarlaUE4 / CarlaUE4 . uproject \u81ea\u52a8 \u81ea\u52a8\u5316 \u5de5\u5177 % UE4 _ ROOT% \\ Engine \\ Build \\ BatchFiles \\ RunUAT . bat ( Unreal Automation Tool ) \u4f20\u9012 \u7684 \u53c2\u6570 \u5305\u62ec \uff1a * BuildCookRun \uff1a \u6784\u5efa \uff08 Build \uff09 \uff1a \u8be5 \u9636\u6bb5 \u5c06 \u4e3a \u6240 \u9009\u62e9 \u7684 \u5e73\u53f0 \u7f16\u8bd1 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u70d8\u57f9 \uff08 Cook \uff09 \uff1a \u8be5 \u9636\u6bb5 \u901a\u8fc7 \u5728 \u7279\u6b8a \u6a21\u5f0f \u4e0b \u6267\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u6765 \u8f6c\u5316 \u5185\u5bb9 \u3002 \u8fd0\u884c \uff08 Run \uff09 \uff1a \u8be5 \u9636\u6bb5 \u5728 \u76ee\u6807 \u5e73\u53f0 \u4e0a \u542f\u52a8 \u5df2 \u5c01\u88c5 \u7684 \u9879\u76ee \u3002 * nocompileeditor \uff1a \u4e0d \u5305\u62ec \u7f16\u8bd1 \u597d \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff1f * - TargetPlatform = Win64 \uff1a \u7f16\u8bd1 \u8bd1\u6210 \u7f16\u8bd1\u6210 \u7684 \u76ee\u6807 \u6587\u4ef6 * - Platform = Win64 \uff1a \u6240\u5728 \u6240\u5728\u5730 \u5e73\u53f0 * - installed * - nop4 \uff1a \u5728 \u6b64 \u6784\u5efa \u671f\u95f4 \u4e0d\u60f3 \u4e0e Perforce \u4ea4\u4e92 \uff08 \u76f8\u53cd \u662f \uff1a - P4 \uff09 * - project = \" % ROOT _ PATH% Unreal / CarlaUE4 / CarlaUE4 . uproject \" * - cook \uff1a \u8981 \u8fd0\u884c \u70d8\u57f9 \u6b65\u9aa4 * - stage \uff1a \u5c06 \u70d8\u57f9 \u7ed3\u679c \u4fdd\u5b58 \u5728 \u6682\u5b58 \u76ee\u5f55 \u4e2d * - build \uff1a \u8981 \u8fd0\u884c \u6784\u5efa \u6b65\u9aa4 * - archive \uff1a \u5e0c\u671b \u5c06 \u76ee\u5f55 \u4e2d \u7684 \u5b8c\u6574 \u8f93\u51fa \u5f52\u6863 * - archivedirectory = \" ! BUILD _ FOLDER ! \" \uff1a \u5f52\u6863 \u9879\u76ee \u7684 \u8def\u5f84 * - package \uff1a \u4e3a \u76ee\u6807 \u5e73\u53f0 \u521b\u5efa \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff08 \u4f8b\u5982 Mac \u4e0a \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6587\u4ef6 \uff0c Android \u4e0a \u7684 apk \u6216 iPhone \u4e0a \u7684 ipa \uff09 * - clientconfig = % PACKAGE _ CONFIG%","title":"Package . bat"},{"location":"build_tools/#_1","text":"UnrealBuildTool \u529f\u80fd \u6d41\u7a0b \u89e3\u6790","title":"\u53c2\u8003"},{"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":"\u66f4\u65b0 Carla"},{"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 \u5176\u4ed6 \u62a5\u9519 \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 \u751f\u6210 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 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 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 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 \u6784\u5efa \u4e00\u4e2a egg \u5206\u53d1 \u5305 \uff08 binary distribution \uff09 \uff0c \u4f1a \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e0b \u7684 \u201c dist \u201d \u76ee\u5f55 \u5185 \u521b\u5efa \u4e00\u4e2a \u201c egg \u201d \u6587\u4ef6 \uff0c \u6587\u4ef6 \u6587\u4ef6\u540d \u683c\u5f0f \u5c31\u662f \u201d \u9879\u76ee \u540d - \u7248\u672c \u7248\u672c\u53f7 - Python \u7248\u672c . egg \u201d \uff1a python setup . py bdist _ egg \u6784\u5efa \u4e00\u4e2a wheel \u5206\u53d1 \u5305 \uff0c egg \u5305\u662f \u8fc7\u65f6 \u7684 \uff0c whl \u5305\u662f \u65b0 \u7684 \u6807\u51c6 \uff1a python setup . py bdist _ wheel \u811a\u672c setup . py \u4e2d \u7684 ext _ modules \u53c2\u6570 \u7528\u4e8e \u6784\u5efa C \u548c C++ \u6269\u5c55 \u6269\u5c55 \u5305 \u3002 \u5176\u662f Extension \u5b9e\u4f8b \u7684 \u5217\u8868 \uff0c \u6bcf \u4e00\u4e2a Extension \u5b9e\u4f8b \u63cf\u8ff0 \u4e86 \u4e00\u4e2a \u72ec\u7acb \u7684 \u6269\u5c55 \u6a21\u5757 \uff0c \u6269\u5c55 \u6a21\u5757 \u53ef\u4ee5 \u8bbe\u7f6e \u6269\u5c55 \u5305\u540d \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u3001 \u6587\u4ef6 \u6e90\u6587\u4ef6 \u3001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u53ca\u5176 \u8def\u5f84 \u3001 \u5b8f \u5b9a\u4e49 \u548c \u7f16\u8f91 \u53c2\u6570 \u7b49 \u3002 \u5f53 \u4f60 \u5b89\u88c5 \u4e00\u4e2a \u4e00\u4e2a\u5305 \u540e \uff0c \u8fd9\u4e2a \u5305 \u9700\u8981 \u4f60 \u4e0d\u65ad \u4fee\u6539 \uff0c \u8fd9\u65f6 \u5c31 \u91c7\u7528 \u8fd9\u79cd \u5b89\u88c5 \u65b9\u6cd5 \uff1a python setup . py develop \u3002 \u4ec5 \u5728 Python37 / Lib / site - packages \u76ee\u5f55 \u4e0b \u751f\u6210 \u94fe\u63a5 \u6587\u4ef6 carla . egg - link \u6307\u5411 carla \\ PythonAPI \\ carla \\ source \u548c .. / \u3002 \u800c python setup . py install \u5728 Python37 \\ Lib \\ site - packages \\ carla - 0.9 . 15 - py3.7 - win - amd64 . egg \u76ee\u5f55 \u4e0b \u751f\u6210 \u8fd0\u884c \u5305 \uff0c \u5305\u62ec libcarla . cp37 - win _ amd64 . pyd \u3002 \u5176\u4ed6 \u5982\u679c \u60f3 \u91cd\u65b0 \u7f16\u8bd1 LibCarla \u6216\u8005 \u4f7f\u7528 \u6700\u65b0 \u7684 \u4fee\u6539 \uff0c \u9700\u8981 \u5220\u9664 Build / libcarla - visualstudio \u76ee\u5f55 \uff0c \u7136\u540e \u91cd\u65b0 \u8fd0\u884c \u7f16\u8bd1 \u547d\u4ee4 \uff1a make LibCarla \u5219 \u670d\u52a1 \u670d\u52a1\u7aef \u6587\u4ef6 carla _ server . lib \u751f\u6210 \u81f3 carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u6587\u4ef6 carla _ client . lib \u751f\u6210 \u81f3 carla \\ PythonAPI \\ carla \\ dependencies \\ \u3002 \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 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e2d \u4e4b\u524d \u5b89\u88c5 \u8fc7 vs \uff0c \u518d \u5b89\u88c5 \u65f6\u62a5 \u9519 \uff1a \u65e0\u6cd5 \u5b89\u88c5 Microsoft . VisualStudio . Debugger . JustInTime . Msi \u548c Could not open key : UNKNOWNComponents Werify that you have sufficient access to that key , or contact your support personnel . \u89e3\u51b3 \uff1a \u6ce8\u518c \u6ce8\u518c\u8868 \u7f16\u8f91 \u7f16\u8f91\u5668 \u65e0\u6cd5 \u5728 \u5f53\u524d \u6240\u9009 \u7684 \u9879 \u53ca\u5176 \u90e8\u5206 \u5b50\u9879 \u4e0a \u8bbe\u7f6e \u5b89\u5168 \u5b89\u5168\u6027 \u3002 \u6ce8\u610f \uff1a \u4f7f\u7528 \u5728\u7ebf \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 vs _ community __ 2019 . exe \u8fdb\u884c \u5b89\u88c5 \uff0c \u4e0d\u8981 \u4f7f\u7528 \u79bb\u7ebf \u7248 \u7684 vs2019 \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u5426\u5219 \u4f1a \u51fa\u73b0 \u9519\u8bef \uff1a \u7cfb\u7edf \u9519\u8bef \uff1a & H8007007E ( - 2147024770 ) \u3002 \u627e \u4e0d\u5230 \u6307\u5b9a \u7684 \u6a21\u5757 \u3002 \u53c2\u8003 \u6784\u5efa \u7cfb\u7edf \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 \u4e0b \u7684 \u6784\u5efa"},{"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 \u5176\u4ed6 \u62a5\u9519","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 \u751f\u6210 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 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/#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 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 \u6784\u5efa \u4e00\u4e2a egg \u5206\u53d1 \u5305 \uff08 binary distribution \uff09 \uff0c \u4f1a \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e0b \u7684 \u201c dist \u201d \u76ee\u5f55 \u5185 \u521b\u5efa \u4e00\u4e2a \u201c egg \u201d \u6587\u4ef6 \uff0c \u6587\u4ef6 \u6587\u4ef6\u540d \u683c\u5f0f \u5c31\u662f \u201d \u9879\u76ee \u540d - \u7248\u672c \u7248\u672c\u53f7 - Python \u7248\u672c . egg \u201d \uff1a python setup . py bdist _ egg \u6784\u5efa \u4e00\u4e2a wheel \u5206\u53d1 \u5305 \uff0c egg \u5305\u662f \u8fc7\u65f6 \u7684 \uff0c whl \u5305\u662f \u65b0 \u7684 \u6807\u51c6 \uff1a python setup . py bdist _ wheel \u811a\u672c setup . py \u4e2d \u7684 ext _ modules \u53c2\u6570 \u7528\u4e8e \u6784\u5efa C \u548c C++ \u6269\u5c55 \u6269\u5c55 \u5305 \u3002 \u5176\u662f Extension \u5b9e\u4f8b \u7684 \u5217\u8868 \uff0c \u6bcf \u4e00\u4e2a Extension \u5b9e\u4f8b \u63cf\u8ff0 \u4e86 \u4e00\u4e2a \u72ec\u7acb \u7684 \u6269\u5c55 \u6a21\u5757 \uff0c \u6269\u5c55 \u6a21\u5757 \u53ef\u4ee5 \u8bbe\u7f6e \u6269\u5c55 \u5305\u540d \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u3001 \u6587\u4ef6 \u6e90\u6587\u4ef6 \u3001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u53ca\u5176 \u8def\u5f84 \u3001 \u5b8f \u5b9a\u4e49 \u548c \u7f16\u8f91 \u53c2\u6570 \u7b49 \u3002 \u5f53 \u4f60 \u5b89\u88c5 \u4e00\u4e2a \u4e00\u4e2a\u5305 \u540e \uff0c \u8fd9\u4e2a \u5305 \u9700\u8981 \u4f60 \u4e0d\u65ad \u4fee\u6539 \uff0c \u8fd9\u65f6 \u5c31 \u91c7\u7528 \u8fd9\u79cd \u5b89\u88c5 \u65b9\u6cd5 \uff1a python setup . py develop \u3002 \u4ec5 \u5728 Python37 / Lib / site - packages \u76ee\u5f55 \u4e0b \u751f\u6210 \u94fe\u63a5 \u6587\u4ef6 carla . egg - link \u6307\u5411 carla \\ PythonAPI \\ carla \\ source \u548c .. / \u3002 \u800c python setup . py install \u5728 Python37 \\ Lib \\ site - packages \\ carla - 0.9 . 15 - py3.7 - win - amd64 . egg \u76ee\u5f55 \u4e0b \u751f\u6210 \u8fd0\u884c \u5305 \uff0c \u5305\u62ec libcarla . cp37 - win _ amd64 . pyd \u3002","title":"\u5176\u4ed6 make \u547d\u4ee4 "},{"location":"build_windows/#_9","text":"\u5982\u679c \u60f3 \u91cd\u65b0 \u7f16\u8bd1 LibCarla \u6216\u8005 \u4f7f\u7528 \u6700\u65b0 \u7684 \u4fee\u6539 \uff0c \u9700\u8981 \u5220\u9664 Build / libcarla - visualstudio \u76ee\u5f55 \uff0c \u7136\u540e \u91cd\u65b0 \u8fd0\u884c \u7f16\u8bd1 \u547d\u4ee4 \uff1a make LibCarla \u5219 \u670d\u52a1 \u670d\u52a1\u7aef \u6587\u4ef6 carla _ server . lib \u751f\u6210 \u81f3 carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u6587\u4ef6 carla _ client . lib \u751f\u6210 \u81f3 carla \\ PythonAPI \\ carla \\ dependencies \\ \u3002","title":"\u5176\u4ed6 "},{"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 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e2d \u4e4b\u524d \u5b89\u88c5 \u8fc7 vs \uff0c \u518d \u5b89\u88c5 \u65f6\u62a5 \u9519 \uff1a \u65e0\u6cd5 \u5b89\u88c5 Microsoft . VisualStudio . Debugger . JustInTime . Msi \u548c Could not open key : UNKNOWNComponents Werify that you have sufficient access to that key , or contact your support personnel . \u89e3\u51b3 \uff1a \u6ce8\u518c \u6ce8\u518c\u8868 \u7f16\u8f91 \u7f16\u8f91\u5668 \u65e0\u6cd5 \u5728 \u5f53\u524d \u6240\u9009 \u7684 \u9879 \u53ca\u5176 \u90e8\u5206 \u5b50\u9879 \u4e0a \u8bbe\u7f6e \u5b89\u5168 \u5b89\u5168\u6027 \u3002 \u6ce8\u610f \uff1a \u4f7f\u7528 \u5728\u7ebf \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 vs _ community __ 2019 . exe \u8fdb\u884c \u5b89\u88c5 \uff0c \u4e0d\u8981 \u4f7f\u7528 \u79bb\u7ebf \u7248 \u7684 vs2019 \u5b89\u88c5 \u5b89\u88c5\u5305 \uff0c \u5426\u5219 \u4f1a \u51fa\u73b0 \u9519\u8bef \uff1a \u7cfb\u7edf \u9519\u8bef \uff1a & H8007007E ( - 2147024770 ) \u3002 \u627e \u4e0d\u5230 \u6307\u5b9a \u7684 \u6a21\u5757 \u3002","title":"\u62a5\u9519 "},{"location":"build_windows/#_11","text":"\u6784\u5efa \u7cfb\u7edf \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":"\u53c2\u8003"},{"location":"build_windows_ue5/","text":"\u8b66\u544a \u8fd9\u662f \u4e00\u9879 \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff01 \uff01 \u8fd9\u4e2a \u7248\u672c \u7684 Carla \u4e0d \u88ab \u8ba4\u4e3a \u662f \u4e00\u4e2a \u7a33\u5b9a \u7684 \u7248\u672c \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u51e0\u4e2a \u6708 \u91cc \uff0c \u8fd9\u4e2a \u5206\u652f \u53ef\u80fd \u4f1a \u53d1\u751f \u8bb8\u591a \u91cd\u5927 \u53d8\u5316 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u7834\u574f \u60a8 \u6240 \u505a \u7684 \u4efb\u4f55 \u4fee\u6539 \u3002 \u6211\u4eec \u5efa\u8bae \u4f60 \u628a \u8fd9\u4e2a \u5206\u652f \u5f53\u4f5c \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 \u3002 \u5728 Windows \u4e2d \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u7f16\u8bd1 Carla \u8bbe\u7f6e \u73af\u5883 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u5728 \u672c\u5730 \u673a\u5668 \u4e0a \u514b\u9686 Carla \u7684 ue5 - dev \u5206\u652f \uff1a git clone - b ue5 - dev https : / / github . com / carla - simulator / carla . git CarlaUE5 \u8fd0\u884c \u5b89\u88c5 \u811a\u672c \uff1a cd CarlaUE5 Setup . bat Setup . bat \u811a\u672c \u4f1a \u5b89\u88c5 \u6240\u6709 \u5fc5\u9700 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u5305\u62ec Visual Studio 2022 \u3001 Cmake \u3001 Python \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u548c \u865a\u5e7b \u5f15\u64ce 5 \u3002 \u5b83 \u8fd8 \u4f1a \u4e0b\u8f7d Carla \u5185\u5bb9 \u5e76 \u6784\u5efa Carla \u3002 \u56e0\u6b64 \uff0c \u6b64 \u5904\u7406 \u6279\u5904\u7406 \u6587\u4ef6 \u53ef\u80fd \u9700\u8981 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u7b14\u8bb0 \u6b64 \u7248\u672c \u7684 Carla \u9700\u8981 \u865a\u5e7b \u5f15\u64ce 5.3 \u7684 Carla \u5206\u652f \u3002 \u60a8 \u9700\u8981 \u5c06 \u60a8 \u7684 GitHub \u5e10\u6237 \u94fe\u63a5 \u5230 Epic Games \uff0c \u624d\u80fd \u83b7\u5f97 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u7684 \u6743\u9650 \u3002 \u5982\u679c \u60a8 \u5c1a\u672a \u94fe\u63a5 \u60a8 \u7684 \u5e10\u6237 \uff0c \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u64cd\u4f5c \u8981 \u4f7f\u7528 Carla Unreal Engine 5 \u4ee5\u524d \u7684 \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5b9a\u4e49 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u6307\u5411 CARLA Unreal Engine 5 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u6b64 \u53d8\u91cf \uff0c Setup . bat \u811a\u672c \u5c06 \u4e0b\u8f7d \u5e76 \u6784\u5efa Carla Unreal Engine 5 \uff0c \u8fd9 \u9700\u8981 \u989d\u5916 1 \u4e2a \u591a \u5c0f\u65f6 \u7684 \u6784\u5efa \u65f6\u95f4 \u548c 225Gb \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Setup . bat \u811a\u672c \u68c0\u67e5 PATH \u53d8\u91cf \u9876\u90e8 \u662f\u5426 \u5b89\u88c5 \u4e86 \u4efb\u4f55 Python \u7248\u672c \uff0c \u5426\u5219 \u5b89\u88c5 Python \u3002 \u8981 \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5728 \u8fd0\u884c \u811a\u672c \u4e4b\u524d \u4e3a Python \u6b63\u786e \u8bbe\u7f6e \u4e86 PATH \u53d8\u91cf \u3002 \u5e94 \u6fc0\u6d3b Windows \u5f00\u53d1 \u5f00\u53d1\u8005 \u6a21\u5f0f \uff0c \u5426\u5219 \u6784\u5efa \u5c06 \u5931\u8d25 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002 Carla \u65e0\u6cd5 \u5728 \u5916\u90e8 \u78c1\u76d8 \u4e0a \u6784\u5efa \uff0c Windows \u6ca1\u6709 \u63d0\u4f9b \u6784\u5efa \u6240 \u9700 \u7684 \u8bfb / \u5199 / \u6267\u884c \u6743\u9650 \u3002 \u6784\u5efa \u5e76 \u8fd0\u884c Carla UE5 Setup . bat \u6587\u4ef6 \u672c\u8eab \u542f\u52a8 \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e00\u65e6 \u60a8 \u4fee\u6539 \u4ee3\u7801 \u5e76 \u5e0c\u671b \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a \u8b66\u544a \u786e\u4fdd \u5b9a\u4e49 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u6307\u5411 Carla Unreal Engine 5.3 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 Setup . bat \u8bbe\u7f6e \u6b64 \u53d8\u91cf \uff0c \u4f46 \u5982\u679c \u91c7\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u5b89\u88c5 \u8981\u6c42 \uff0c \u5219 \u53ef\u80fd \u65e0\u6cd5 \u8bbe\u7f6e \u3002 \u6b64\u5916 \uff0c Carla UE4 \u4f7f\u7528 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u662f UE4 _ ROOT \u3002 \u914d\u7f6e \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake - G Ninja - S . - B Build - DCMAKE _ BUILD _ TYPE = Release - DBUILD _ CARLA _ UNREAL = ON - DCARLA _ UNREAL _ ENGINE _ PATH = % CARLA _ UNREAL _ ENGINE _ PATH% \u6784\u5efa Carla \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build \u6784\u5efa \u5e76 \u5b89\u88c5 Python API \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target carla - python - api - install \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target launch \u4f7f\u7528 Carla UE5 \u6784\u5efa \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8b66\u544a Carla UE5 \u7684 \u6784\u5efa \u5305 \u5c1a\u672a \u9488\u5bf9 Windows \u8fdb\u884c \u5168\u9762 \u6d4b\u8bd5 \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target package \u8be5\u5305 \u5c06 \u5728 \u76ee\u5f55 Build / Package \u4e2d \u751f\u6210 \u8fd0\u884c \u5305 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6784\u5efa \u5c1a\u672a \u9488\u5bf9 Windows \u8fdb\u884c \u6d4b\u8bd5 \u3002 Ubuntu \u5b89\u88c5 \u5982\u679c \u5f15\u5bfc \u4e0d\u4e86 \u7cfb\u7edf \uff0c \u9700\u8981 \u5c06 \u5728 BIOS \u4e2d \u8bbe\u7f6e \u4e3a UEFI \u542f\u52a8 \u3002 \u5b89\u88c5 \u754c\u9762 \u5361\u6b7b \u5b8c quiet splash - - - \u6539\u6210 quiet splash acpi = off acpi = off \u662f \u5173\u95ed \u9ad8\u7ea7 \u7535\u6e90 \u7ba1\u7406 \u63a5\u53e3 \u3002 \u5982\u679c \u5fc5\u987b \u6dfb\u52a0 acpi = off \u4f7f ubuntu \u6210\u529f \u542f\u52a8 \uff0c \u5219 \u8868\u793a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u7684 ACPI \u4e0e \u8be5 \u7248\u672c \u7684 ubuntu \u4e0d \u517c\u5bb9 \u3002 \u95ee\u9898 \u65e0\u6cd5 \u5b89\u88c5 Microsoft . VisualStudio . Community . Msi \u5220\u9664 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 C \uff1a \\ Program Files \uff08 x86 \uff09 \\ Windows Kits \u540e \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u3002 \uff08 \u524d\u63d0 \u662f \u7528 \u7f51\u7edc \u5b89\u88c5 \u88c5\u7248 \u5b89\u88c5\u7248 \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 \uff0c \u4e0d\u80fd \u7528 \u79bb\u7ebf \u5b89\u88c5 \u88c5\u7248 \u5b89\u88c5\u7248 \uff09 VS2022 \u5b89\u88c5 \u65f6\u5019 \u51fa\u73b0 \u201c \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6b63 \u5fd9\u4e8e \u5b89\u88c5 \u4e00\u4e2a \u975e Visual Studio \u7684 \u7a0b\u5e8f \u201d \u6253\u5f00 \u201c \u4efb\u52a1 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u201d \u3002 \u5355\u51fb \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9009\u9879 \u9009\u9879\u5361 \u3002 \u67e5\u627e \u201c msiexec . exe \u201d \u8fdb\u7a0b \u3002 \u5982\u679c \u6709 \u4e00\u4e2a \u6216 \u591a\u4e2a \uff0c \u8bf7 \u5168\u90e8 \u9009\u4e2d \uff0c \u518d \u9009\u62e9 \u201c \u7ec8\u6b62 \u4efb\u52a1 \u201d \u3002 \u5b89\u88c5 python \u5305\u65f6 \u51fa\u73b0 \uff1a ValueError : check _ hostname requires server _ hostname \u89e3\u51b3 \uff1a \u5173\u95ed \u4ee3\u7406 \u3002 fatal : fetch - pack : invalid index - pack output git clone -- depth 1 https : / / gitlab . scm321 . com / ufx / xxxx . git \u7f16\u8bd1 Carla \u4f9d\u8d56 \u65f6 \u51fa\u9519 \uff1a HTTP / 2 stream 1 was not closed cleanly : PROTOCOL _ ERROR ( err 1 ) \u89e3\u51b3 \uff1a \u95ee\u9898 \u662f \u7531\u4e8e HTTP / 2 \u5f15\u8d77 \u7684 \uff0c \u5728 Git \u914d\u7f6e \u4e2d \u7981\u7528 HTTP / 2 \uff0c \u6539\u7528 HTTP / 1.1 git config -- global http . version HTTP / 1.1","title":"Build windows ue5"},{"location":"build_windows_ue5/#windows-53-carla","text":"","title":"\u5728 Windows \u4e2d \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u7f16\u8bd1 Carla"},{"location":"build_windows_ue5/#_1","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 5.3 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u5728 \u672c\u5730 \u673a\u5668 \u4e0a \u514b\u9686 Carla \u7684 ue5 - dev \u5206\u652f \uff1a git clone - b ue5 - dev https : / / github . com / carla - simulator / carla . git CarlaUE5 \u8fd0\u884c \u5b89\u88c5 \u811a\u672c \uff1a cd CarlaUE5 Setup . bat Setup . bat \u811a\u672c \u4f1a \u5b89\u88c5 \u6240\u6709 \u5fc5\u9700 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u5305\u62ec Visual Studio 2022 \u3001 Cmake \u3001 Python \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u548c \u865a\u5e7b \u5f15\u64ce 5 \u3002 \u5b83 \u8fd8 \u4f1a \u4e0b\u8f7d Carla \u5185\u5bb9 \u5e76 \u6784\u5efa Carla \u3002 \u56e0\u6b64 \uff0c \u6b64 \u5904\u7406 \u6279\u5904\u7406 \u6587\u4ef6 \u53ef\u80fd \u9700\u8981 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u7b14\u8bb0 \u6b64 \u7248\u672c \u7684 Carla \u9700\u8981 \u865a\u5e7b \u5f15\u64ce 5.3 \u7684 Carla \u5206\u652f \u3002 \u60a8 \u9700\u8981 \u5c06 \u60a8 \u7684 GitHub \u5e10\u6237 \u94fe\u63a5 \u5230 Epic Games \uff0c \u624d\u80fd \u83b7\u5f97 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u7684 \u6743\u9650 \u3002 \u5982\u679c \u60a8 \u5c1a\u672a \u94fe\u63a5 \u60a8 \u7684 \u5e10\u6237 \uff0c \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u64cd\u4f5c \u8981 \u4f7f\u7528 Carla Unreal Engine 5 \u4ee5\u524d \u7684 \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5b9a\u4e49 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u6307\u5411 CARLA Unreal Engine 5 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u6b64 \u53d8\u91cf \uff0c Setup . bat \u811a\u672c \u5c06 \u4e0b\u8f7d \u5e76 \u6784\u5efa Carla Unreal Engine 5 \uff0c \u8fd9 \u9700\u8981 \u989d\u5916 1 \u4e2a \u591a \u5c0f\u65f6 \u7684 \u6784\u5efa \u65f6\u95f4 \u548c 225Gb \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Setup . bat \u811a\u672c \u68c0\u67e5 PATH \u53d8\u91cf \u9876\u90e8 \u662f\u5426 \u5b89\u88c5 \u4e86 \u4efb\u4f55 Python \u7248\u672c \uff0c \u5426\u5219 \u5b89\u88c5 Python \u3002 \u8981 \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u786e\u4fdd \u5728 \u8fd0\u884c \u811a\u672c \u4e4b\u524d \u4e3a Python \u6b63\u786e \u8bbe\u7f6e \u4e86 PATH \u53d8\u91cf \u3002 \u5e94 \u6fc0\u6d3b Windows \u5f00\u53d1 \u5f00\u53d1\u8005 \u6a21\u5f0f \uff0c \u5426\u5219 \u6784\u5efa \u5c06 \u5931\u8d25 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002 Carla \u65e0\u6cd5 \u5728 \u5916\u90e8 \u78c1\u76d8 \u4e0a \u6784\u5efa \uff0c Windows \u6ca1\u6709 \u63d0\u4f9b \u6784\u5efa \u6240 \u9700 \u7684 \u8bfb / \u5199 / \u6267\u884c \u6743\u9650 \u3002","title":"\u8bbe\u7f6e \u73af\u5883"},{"location":"build_windows_ue5/#carla-ue5","text":"Setup . bat \u6587\u4ef6 \u672c\u8eab \u542f\u52a8 \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e00\u65e6 \u60a8 \u4fee\u6539 \u4ee3\u7801 \u5e76 \u5e0c\u671b \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a \u8b66\u544a \u786e\u4fdd \u5b9a\u4e49 CARLA _ UNREAL _ ENGINE _ PATH \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u6307\u5411 Carla Unreal Engine 5.3 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 Setup . bat \u8bbe\u7f6e \u6b64 \u53d8\u91cf \uff0c \u4f46 \u5982\u679c \u91c7\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u5b89\u88c5 \u8981\u6c42 \uff0c \u5219 \u53ef\u80fd \u65e0\u6cd5 \u8bbe\u7f6e \u3002 \u6b64\u5916 \uff0c Carla UE4 \u4f7f\u7528 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u662f UE4 _ ROOT \u3002 \u914d\u7f6e \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake - G Ninja - S . - B Build - DCMAKE _ BUILD _ TYPE = Release - DBUILD _ CARLA _ UNREAL = ON - DCARLA _ UNREAL _ ENGINE _ PATH = % CARLA _ UNREAL _ ENGINE _ PATH% \u6784\u5efa Carla \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build \u6784\u5efa \u5e76 \u5b89\u88c5 Python API \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target carla - python - api - install \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target launch","title":"\u6784\u5efa \u5e76 \u8fd0\u884c Carla UE5"},{"location":"build_windows_ue5/#carla-ue5_1","text":"\u8b66\u544a Carla UE5 \u7684 \u6784\u5efa \u5305 \u5c1a\u672a \u9488\u5bf9 Windows \u8fdb\u884c \u5168\u9762 \u6d4b\u8bd5 \u3002 \u5728 CarlaUE5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 VS 2022 \u7684 x64 Native Tools \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cmake -- build Build -- target package \u8be5\u5305 \u5c06 \u5728 \u76ee\u5f55 Build / Package \u4e2d \u751f\u6210","title":"\u4f7f\u7528 Carla UE5 \u6784\u5efa \u8f6f\u4ef6\u5305"},{"location":"build_windows_ue5/#_2","text":"\u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6784\u5efa \u5c1a\u672a \u9488\u5bf9 Windows \u8fdb\u884c \u6d4b\u8bd5 \u3002","title":"\u8fd0\u884c \u5305"},{"location":"build_windows_ue5/#ubuntu","text":"\u5982\u679c \u5f15\u5bfc \u4e0d\u4e86 \u7cfb\u7edf \uff0c \u9700\u8981 \u5c06 \u5728 BIOS \u4e2d \u8bbe\u7f6e \u4e3a UEFI \u542f\u52a8 \u3002 \u5b89\u88c5 \u754c\u9762 \u5361\u6b7b \u5b8c quiet splash - - - \u6539\u6210 quiet splash acpi = off acpi = off \u662f \u5173\u95ed \u9ad8\u7ea7 \u7535\u6e90 \u7ba1\u7406 \u63a5\u53e3 \u3002 \u5982\u679c \u5fc5\u987b \u6dfb\u52a0 acpi = off \u4f7f ubuntu \u6210\u529f \u542f\u52a8 \uff0c \u5219 \u8868\u793a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u7684 ACPI \u4e0e \u8be5 \u7248\u672c \u7684 ubuntu \u4e0d \u517c\u5bb9 \u3002","title":"Ubuntu \u5b89\u88c5"},{"location":"build_windows_ue5/#_3","text":"\u65e0\u6cd5 \u5b89\u88c5 Microsoft . VisualStudio . Community . Msi \u5220\u9664 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 C \uff1a \\ Program Files \uff08 x86 \uff09 \\ Windows Kits \u540e \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u3002 \uff08 \u524d\u63d0 \u662f \u7528 \u7f51\u7edc \u5b89\u88c5 \u88c5\u7248 \u5b89\u88c5\u7248 \u5b89\u88c5 \u6587\u4ef6 \u5b89\u88c5\u6587\u4ef6 \uff0c \u4e0d\u80fd \u7528 \u79bb\u7ebf \u5b89\u88c5 \u88c5\u7248 \u5b89\u88c5\u7248 \uff09 VS2022 \u5b89\u88c5 \u65f6\u5019 \u51fa\u73b0 \u201c \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6b63 \u5fd9\u4e8e \u5b89\u88c5 \u4e00\u4e2a \u975e Visual Studio \u7684 \u7a0b\u5e8f \u201d \u6253\u5f00 \u201c \u4efb\u52a1 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u201d \u3002 \u5355\u51fb \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9009\u9879 \u9009\u9879\u5361 \u3002 \u67e5\u627e \u201c msiexec . exe \u201d \u8fdb\u7a0b \u3002 \u5982\u679c \u6709 \u4e00\u4e2a \u6216 \u591a\u4e2a \uff0c \u8bf7 \u5168\u90e8 \u9009\u4e2d \uff0c \u518d \u9009\u62e9 \u201c \u7ec8\u6b62 \u4efb\u52a1 \u201d \u3002 \u5b89\u88c5 python \u5305\u65f6 \u51fa\u73b0 \uff1a ValueError : check _ hostname requires server _ hostname \u89e3\u51b3 \uff1a \u5173\u95ed \u4ee3\u7406 \u3002 fatal : fetch - pack : invalid index - pack output git clone -- depth 1 https : / / gitlab . scm321 . com / ufx / xxxx . git \u7f16\u8bd1 Carla \u4f9d\u8d56 \u65f6 \u51fa\u9519 \uff1a HTTP / 2 stream 1 was not closed cleanly : PROTOCOL _ ERROR ( err 1 ) \u89e3\u51b3 \uff1a \u95ee\u9898 \u662f \u7531\u4e8e HTTP / 2 \u5f15\u8d77 \u7684 \uff0c \u5728 Git \u914d\u7f6e \u4e2d \u7981\u7528 HTTP / 2 \uff0c \u6539\u7528 HTTP / 1.1 git config -- global http . version HTTP / 1.1","title":"\u95ee\u9898"},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ee3\u7406 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ee3\u7406"},{"location":"carla_ad_agent/#carla","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406"},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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_design/","text":"Carla \u8bbe\u8ba1 \u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 Carla \u7531 \u4ee5\u4e0b \u6a21\u5757 \u7ec4\u6210 \u5ba2\u6237 \u5ba2\u6237\u7aef Python \u5ba2\u6237 \u5ba2\u6237\u7aef API \uff1a \u201c PythonClient / carla \u201d \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef CarlaUE4 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee \uff1a \u201c Unreal / CarlaUE4 \u201d \u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6 \uff1a \u201c Unreal / CarlaUE4 / Plugins / Carla \u201d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u201c Util / CarlaServer \u201d \u7b14\u8bb0 \u901a\u8fc7 \u5728 Carla \u9879\u76ee \u4e3b \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c Doxygen \u53ef\u4ee5 \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \u3002 Python \u5ba2\u6237 \u5ba2\u6237\u7aef API \u5ba2\u6237 \u5ba2\u6237\u7aef API \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7528\u4e8e \u4e0e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 Python \u6a21\u5757 \u3002 \u5728 \u201c PythonClient \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u4f7f\u7528 \u201c carla \u201d \u6a21\u5757 \u7f16\u5199 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u811a\u672c \u7684 \u793a\u4f8b \u3002 CarlaUE4 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee Unreal \u9879\u76ee \u201c CarlaUE4 \u201d \u5305\u542b \u751f\u6210 Carla \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u6240\u6709 \u8d44\u4ea7 \u548c \u573a\u666f \u3002 \u5b83 \u4f7f\u7528 Carla \u63d2\u4ef6 \u63d0\u4f9b \u7684 \u5de5\u5177 \u6765 \u7ec4\u88c5 \u573a\u666f \u4e2d \u7684 \u57ce\u5e02 \u548c \u4ee3\u7406 \u7684 \u884c\u4e3a \u3002 \u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6 Carla \u63d2\u4ef6 \u5305\u542b Carla \u7684 \u6240\u6709 \u529f\u80fd \u3002 \u6211\u4eec \u5c1d\u8bd5 \u5c06 \u6b64 \u529f\u80fd \u4e0e \u8d44\u4ea7 \u5206\u5f00 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee \u4e2d \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a\u5730 \u4f7f\u7528 \u6b64 \u63d2\u4ef6 \u4e2d \u7684 \u529f\u80fd \u3002 \u5b83 \u4f7f\u7528 \u201c CarlaServer \u201d \u5e93 \u8fdb\u884c \u7f51\u7edc \u901a\u4fe1 \u7f51\u7edc\u901a\u4fe1 \u3002 CarlaServer \u7528\u4e8e \u7f51\u7edc \u901a\u4fe1 \u7f51\u7edc\u901a\u4fe1 \u7684 \u5916\u90e8 \u5e93 \u3002 \u6709\u5173 \u5b9e\u65bd \u7ec6\u8282 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u201c CarlaServer \u201d \u3002","title":"Carla \u8bbe\u8ba1"},{"location":"carla_design/#carla","text":"\u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 Carla \u7531 \u4ee5\u4e0b \u6a21\u5757 \u7ec4\u6210 \u5ba2\u6237 \u5ba2\u6237\u7aef Python \u5ba2\u6237 \u5ba2\u6237\u7aef API \uff1a \u201c PythonClient / carla \u201d \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef CarlaUE4 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee \uff1a \u201c Unreal / CarlaUE4 \u201d \u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6 \uff1a \u201c Unreal / CarlaUE4 / Plugins / Carla \u201d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u201c Util / CarlaServer \u201d \u7b14\u8bb0 \u901a\u8fc7 \u5728 Carla \u9879\u76ee \u4e3b \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c Doxygen \u53ef\u4ee5 \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \u3002","title":"Carla \u8bbe\u8ba1"},{"location":"carla_design/#python-api","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef API \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7528\u4e8e \u4e0e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 Python \u6a21\u5757 \u3002 \u5728 \u201c PythonClient \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u6211\u4eec \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u4f7f\u7528 \u201c carla \u201d \u6a21\u5757 \u7f16\u5199 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u811a\u672c \u7684 \u793a\u4f8b \u3002","title":"Python \u5ba2\u6237\u7aef API"},{"location":"carla_design/#carlaue4","text":"Unreal \u9879\u76ee \u201c CarlaUE4 \u201d \u5305\u542b \u751f\u6210 Carla \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u6240\u6709 \u8d44\u4ea7 \u548c \u573a\u666f \u3002 \u5b83 \u4f7f\u7528 Carla \u63d2\u4ef6 \u63d0\u4f9b \u7684 \u5de5\u5177 \u6765 \u7ec4\u88c5 \u573a\u666f \u4e2d \u7684 \u57ce\u5e02 \u548c \u4ee3\u7406 \u7684 \u884c\u4e3a \u3002","title":"CarlaUE4 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee"},{"location":"carla_design/#carla_1","text":"Carla \u63d2\u4ef6 \u5305\u542b Carla \u7684 \u6240\u6709 \u529f\u80fd \u3002 \u6211\u4eec \u5c1d\u8bd5 \u5c06 \u6b64 \u529f\u80fd \u4e0e \u8d44\u4ea7 \u5206\u5f00 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u865a\u5e7b \u5f15\u64ce \u9879\u76ee \u4e2d \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a\u5730 \u4f7f\u7528 \u6b64 \u63d2\u4ef6 \u4e2d \u7684 \u529f\u80fd \u3002 \u5b83 \u4f7f\u7528 \u201c CarlaServer \u201d \u5e93 \u8fdb\u884c \u7f51\u7edc \u901a\u4fe1 \u7f51\u7edc\u901a\u4fe1 \u3002","title":"\u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6"},{"location":"carla_design/#carlaserver","text":"\u7528\u4e8e \u7f51\u7edc \u901a\u4fe1 \u7f51\u7edc\u901a\u4fe1 \u7684 \u5916\u90e8 \u5e93 \u3002 \u6709\u5173 \u5b9e\u65bd \u7ec6\u8282 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u201c CarlaServer \u201d \u3002","title":"CarlaServer"},{"location":"carla_headless/","text":"\u65e0 \u663e\u793a \u663e\u793a\u5c4f \u8fd0\u884c CARLA \u5e76 \u9009\u62e9 GPU \u7b14\u8bb0 \u53c2\u9605 \u8bf7\u53c2\u9605 # 225 \u4e86\u89e3 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u672c \u6559\u7a0b \u9002\u7528 \u4e8e \u62e5\u6709 \u591a \u5f20 nvidia \u663e\u5361 \u5e76 \u5e0c\u671b \u5728 \u6240\u6709 GPU \u4e0a \u6709\u6548 \u4f7f\u7528 CARLA \u7684 \u8fdc\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7528\u6237 \u3002 \u60f3\u8981 \u4f7f\u7528 \u672a \u63d2 \u5728 \u5c4f\u5e55 \u4e0a \u7684 GPU \u6765 \u6e32\u67d3 CARLA \u7684 \u684c\u9762 \u7528\u6237 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f60 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u914d\u7f6e \u60a8 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u8ba9 nvidia \u5728 \u672a \u8fde\u63a5 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fdb\u884c \u6e32\u67d3 \u3002 \u5982\u4f55 \u4f7f\u7528 VNC + VGL \u6a21\u62df \u8fde\u63a5 \u5230 \u60a8 \u673a\u5668 \u4e2d \u4efb\u4f55 GPU \u7684 \u663e\u793a \u663e\u793a\u5668 \u3002 \u6700\u540e \uff0c \u5982\u4f55 \u5728 \u6b64 \u73af\u5883 \u8fd0\u884c \u73af\u5883\u4e2d\u8fd0\u884c CARLA \u672c \u6559\u7a0b \u5728 Ubuntu 16.04 \u4e2d \u4f7f\u7528 NVIDIA 384.11 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u51c6\u5907 \u5de5\u4f5c \u60a8 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u9700\u8981 \u5148 \u8fd0\u884c \u4e00\u4e9b \u7a0b\u5e8f \u3002 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u3001 OpenGL \u3001 VirtualGL ( VGL ) \u3001 TurboVNC 2.11 \u3002 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4e0b\u8f7d \u5e76 \u5b89\u88c5 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4ee5\u53ca \u5178\u578b \u6559\u7a0b \u3002 OpenGL Openg GL \u662f Virtual GL \u6240 \u5fc5\u9700 \u7684 \u3002 \u901a\u5e38 \u53ef\u4ee5 \u901a\u8fc7 apt \u5b89\u88c5 OpenGL \u3002 sudo apt - get install freeglut3 - dev mesa - utils VGL \u6309\u7167 \u672c \u6559\u7a0b \u5b89\u88c5 vgl \uff1a \u5b89\u88c5 VGL TurboVNC \u6309\u7167 \u4ee5\u4e0b \u6559\u7a0b \u5b89\u88c5 TurboVNC 2.11 \uff1a \u5b89\u88c5 TurboVNC \u8b66\u544a \uff1a \u8bf7 \u8c28\u614e \u5b89\u88c5 VNC \uff0c \u56e0\u4e3a \u5b83 \u53ef\u80fd \u4e0e Unreal \u4e0d \u517c\u5bb9 \u3002 \u4e0a\u9762 \u7684 \u90a3\u4e2a \u662f \u552f\u4e00 \u5bf9 \u6211 \u6709\u7528 \u7684 \u3002 \u989d\u5916 \u7684 \u5305 \u8fd9\u4e9b \u989d\u5916 \u7684 \u5305 \u5bf9\u4e8e \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd0\u884c \u662f \u5fc5\u9700 \u7684 \u3002 ` ` ` shell script sudo apt install x11 - xserver - utils libxrandr - dev ### \u914d\u7f6e \u4f60 \u7684 X \u60a8 \u5fc5\u987b \u751f\u6210 \u4e0e \u60a8 \u7684 nvdia \u517c\u5bb9 \u7684 X \uff0c \u5e76\u4e14 \u517c\u5bb9 \u5728 \u65e0 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u3002 \u4e3a\u6b64 \uff0c \u4ee5\u4e0b \u547d\u4ee4 \u6709\u6548 \uff1a ` ` ` shell script sudo nvidia - xconfig - a -- use - display - device = None -- virtual = 1280x1024 \u6a21\u62df \u865a\u62df \u663e\u793a \u8fd0\u884c \u4f60 \u81ea\u5df1 \u7684 Xorg \u3002 \u8fd9\u91cc \u6211 \u4f7f\u7528 \u6570\u5b57 7 \uff0c \u4f46 \u5b83 \u53ef\u4ee5 \u6807\u8bb0 \u4e3a \u4efb\u4f55 \u81ea\u7531 \u6570\u5b57 ` ` ` shell script sudo nohup Xorg : 7 & \u8fd0\u884c \u8f85\u52a9 \u8fdc\u7a0b VNC - Xserver \u3002 \u8fd9 \u5c06 \u521b\u5efa \u865a\u62df \u663e\u793a \u663e\u793a\u5668 \u201c 8 \u201d \u3002 ` ` ` shell script / opt / TurboVNC / bin / vncserver : 8 \u5982\u679c \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \uff0c \u4ee5\u4e0b \u547d\u4ee4 \u5e94\u8be5 \u53ef\u4ee5 \u987a\u5229 \u8fd0\u884c \u3002 ` ` ` shell script DISPLAY = : 8 vglrun - d : 7.0 glxinfo \u6ce8\u610f \u3002 \u8fd9 \u5c06 \u5728 Xserver 7 \u3001 \u8bbe\u5907 0 \u4e0a \u8fd0\u884c glxinfo \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u60a8 \u6b63\u5728 \u9009\u62e9 \u673a\u5668 \u4e0a \u7684 GPU 0 \u3002 \u8981 \u5728 \u5176\u4ed6 GPU \uff08 \u4f8b\u5982 GPU 1 \uff09 \u4e0a \u8fd0\u884c \uff0c \u8bf7 \u8fd0\u884c \uff1a ` ` ` shell script DISPLAY = : 8 vglrun - d : 7.1 glxinfo \u989d\u5916 \u7684 \u5982\u679c \u60a8 \u5e0c\u671b \u5728 \u521b\u5efa \u201c nohup Xorg \u201d \u65f6 \u7981\u7528 sudo \uff0c \u8bf7 \u8f6c\u5230 \u201c / etc / X11 / Xwrapper . config \u201d \u6587\u4ef6 \u5e76 \u5c06 \u201c allowed _ users = console \u201d \u66f4 \u6539\u4e3a \u201c allowed _ users = anybody \u201d \u5728 \u8fd0\u884c nohup Xorg \u4e4b\u524d \u53ef\u80fd \u9700\u8981 \u505c\u6b62 \u6240\u6709 Xorg \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8be5 \u547d\u4ee4 \u53ef\u80fd \u56e0 \u60a8 \u7684 \u7cfb\u7edf \u800c\u5f02 \u3002 \u901a\u5e38 \u5bf9\u4e8e Ubuntu 16.04 \uff0c \u60a8 \u5e94\u8be5 \u4f7f\u7528 \uff1a ` ` ` shell script sudo service lightdm stop ## \u8fd0\u884c CARLA \u73b0\u5728 \uff0c \u6700\u540e \uff0c \u8981 \u5728 \u67d0\u4e2a $ CARLA _ PATH \u4e2d \u7684 \u67d0\u4e2a gpu _ number \u4e0a \u8fd0\u884c CARLA \uff0c \u8bf7 \u8fd0\u884c \u3002 ` ` ` shell script DISPLAY = : 8 vglrun - d : 7 . < gpu _ number > $ CARLA _ PATH / CarlaUE4 / Binaries / Linux / CarlaUE4","title":"\u65e0 \u663e\u793a\u5c4f \u8fd0\u884c CARLA \u5e76 \u9009\u62e9 GPU"},{"location":"carla_headless/#carla-gpu","text":"\u7b14\u8bb0 \u53c2\u9605 \u8bf7\u53c2\u9605 # 225 \u4e86\u89e3 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u672c \u6559\u7a0b \u9002\u7528 \u4e8e \u62e5\u6709 \u591a \u5f20 nvidia \u663e\u5361 \u5e76 \u5e0c\u671b \u5728 \u6240\u6709 GPU \u4e0a \u6709\u6548 \u4f7f\u7528 CARLA \u7684 \u8fdc\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7528\u6237 \u3002 \u60f3\u8981 \u4f7f\u7528 \u672a \u63d2 \u5728 \u5c4f\u5e55 \u4e0a \u7684 GPU \u6765 \u6e32\u67d3 CARLA \u7684 \u684c\u9762 \u7528\u6237 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f60 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u914d\u7f6e \u60a8 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u8ba9 nvidia \u5728 \u672a \u8fde\u63a5 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fdb\u884c \u6e32\u67d3 \u3002 \u5982\u4f55 \u4f7f\u7528 VNC + VGL \u6a21\u62df \u8fde\u63a5 \u5230 \u60a8 \u673a\u5668 \u4e2d \u4efb\u4f55 GPU \u7684 \u663e\u793a \u663e\u793a\u5668 \u3002 \u6700\u540e \uff0c \u5982\u4f55 \u5728 \u6b64 \u73af\u5883 \u8fd0\u884c \u73af\u5883\u4e2d\u8fd0\u884c CARLA \u672c \u6559\u7a0b \u5728 Ubuntu 16.04 \u4e2d \u4f7f\u7528 NVIDIA 384.11 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002","title":"\u65e0 \u663e\u793a\u5c4f \u8fd0\u884c CARLA \u5e76 \u9009\u62e9 GPU"},{"location":"carla_headless/#_1","text":"\u60a8 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u9700\u8981 \u5148 \u8fd0\u884c \u4e00\u4e9b \u7a0b\u5e8f \u3002 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u3001 OpenGL \u3001 VirtualGL ( VGL ) \u3001 TurboVNC 2.11 \u3002","title":"\u51c6\u5907 \u5de5\u4f5c"},{"location":"carla_headless/#nvidia","text":"\u4e0b\u8f7d \u5e76 \u5b89\u88c5 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u4ee5\u53ca \u5178\u578b \u6559\u7a0b \u3002","title":"NVIDIA \u9a71\u52a8\u7a0b\u5e8f"},{"location":"carla_headless/#opengl","text":"Openg GL \u662f Virtual GL \u6240 \u5fc5\u9700 \u7684 \u3002 \u901a\u5e38 \u53ef\u4ee5 \u901a\u8fc7 apt \u5b89\u88c5 OpenGL \u3002 sudo apt - get install freeglut3 - dev mesa - utils","title":"OpenGL"},{"location":"carla_headless/#vgl","text":"\u6309\u7167 \u672c \u6559\u7a0b \u5b89\u88c5 vgl \uff1a \u5b89\u88c5 VGL","title":"VGL"},{"location":"carla_headless/#turbovnc","text":"\u6309\u7167 \u4ee5\u4e0b \u6559\u7a0b \u5b89\u88c5 TurboVNC 2.11 \uff1a \u5b89\u88c5 TurboVNC \u8b66\u544a \uff1a \u8bf7 \u8c28\u614e \u5b89\u88c5 VNC \uff0c \u56e0\u4e3a \u5b83 \u53ef\u80fd \u4e0e Unreal \u4e0d \u517c\u5bb9 \u3002 \u4e0a\u9762 \u7684 \u90a3\u4e2a \u662f \u552f\u4e00 \u5bf9 \u6211 \u6709\u7528 \u7684 \u3002","title":"TurboVNC"},{"location":"carla_headless/#_2","text":"\u8fd9\u4e9b \u989d\u5916 \u7684 \u5305 \u5bf9\u4e8e \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd0\u884c \u662f \u5fc5\u9700 \u7684 \u3002 ` ` ` shell script sudo apt install x11 - xserver - utils libxrandr - dev ### \u914d\u7f6e \u4f60 \u7684 X \u60a8 \u5fc5\u987b \u751f\u6210 \u4e0e \u60a8 \u7684 nvdia \u517c\u5bb9 \u7684 X \uff0c \u5e76\u4e14 \u517c\u5bb9 \u5728 \u65e0 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u3002 \u4e3a\u6b64 \uff0c \u4ee5\u4e0b \u547d\u4ee4 \u6709\u6548 \uff1a ` ` ` shell script sudo nvidia - xconfig - a -- use - display - device = None -- virtual = 1280x1024","title":"\u989d\u5916 \u7684 \u5305"},{"location":"carla_headless/#_3","text":"\u8fd0\u884c \u4f60 \u81ea\u5df1 \u7684 Xorg \u3002 \u8fd9\u91cc \u6211 \u4f7f\u7528 \u6570\u5b57 7 \uff0c \u4f46 \u5b83 \u53ef\u4ee5 \u6807\u8bb0 \u4e3a \u4efb\u4f55 \u81ea\u7531 \u6570\u5b57 ` ` ` shell script sudo nohup Xorg : 7 & \u8fd0\u884c \u8f85\u52a9 \u8fdc\u7a0b VNC - Xserver \u3002 \u8fd9 \u5c06 \u521b\u5efa \u865a\u62df \u663e\u793a \u663e\u793a\u5668 \u201c 8 \u201d \u3002 ` ` ` shell script / opt / TurboVNC / bin / vncserver : 8 \u5982\u679c \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \uff0c \u4ee5\u4e0b \u547d\u4ee4 \u5e94\u8be5 \u53ef\u4ee5 \u987a\u5229 \u8fd0\u884c \u3002 ` ` ` shell script DISPLAY = : 8 vglrun - d : 7.0 glxinfo \u6ce8\u610f \u3002 \u8fd9 \u5c06 \u5728 Xserver 7 \u3001 \u8bbe\u5907 0 \u4e0a \u8fd0\u884c glxinfo \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u60a8 \u6b63\u5728 \u9009\u62e9 \u673a\u5668 \u4e0a \u7684 GPU 0 \u3002 \u8981 \u5728 \u5176\u4ed6 GPU \uff08 \u4f8b\u5982 GPU 1 \uff09 \u4e0a \u8fd0\u884c \uff0c \u8bf7 \u8fd0\u884c \uff1a ` ` ` shell script DISPLAY = : 8 vglrun - d : 7.1 glxinfo","title":"\u6a21\u62df \u865a\u62df \u663e\u793a"},{"location":"carla_headless/#_4","text":"\u5982\u679c \u60a8 \u5e0c\u671b \u5728 \u521b\u5efa \u201c nohup Xorg \u201d \u65f6 \u7981\u7528 sudo \uff0c \u8bf7 \u8f6c\u5230 \u201c / etc / X11 / Xwrapper . config \u201d \u6587\u4ef6 \u5e76 \u5c06 \u201c allowed _ users = console \u201d \u66f4 \u6539\u4e3a \u201c allowed _ users = anybody \u201d \u5728 \u8fd0\u884c nohup Xorg \u4e4b\u524d \u53ef\u80fd \u9700\u8981 \u505c\u6b62 \u6240\u6709 Xorg \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8be5 \u547d\u4ee4 \u53ef\u80fd \u56e0 \u60a8 \u7684 \u7cfb\u7edf \u800c\u5f02 \u3002 \u901a\u5e38 \u5bf9\u4e8e Ubuntu 16.04 \uff0c \u60a8 \u5e94\u8be5 \u4f7f\u7528 \uff1a ` ` ` shell script sudo service lightdm stop ## \u8fd0\u884c CARLA \u73b0\u5728 \uff0c \u6700\u540e \uff0c \u8981 \u5728 \u67d0\u4e2a $ CARLA _ PATH \u4e2d \u7684 \u67d0\u4e2a gpu _ number \u4e0a \u8fd0\u884c CARLA \uff0c \u8bf7 \u8fd0\u884c \u3002 ` ` ` shell script DISPLAY = : 8 vglrun - d : 7 . < gpu _ number > $ CARLA _ PATH / CarlaUE4 / Binaries / Linux / CarlaUE4","title":"\u989d\u5916 \u7684"},{"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 : \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d\u79f0 gnss \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d lane _ invasion \u7684 \u538b\u7ebf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 : \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d\u79f0 gnss \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u540d lane _ invasion \u7684 \u538b\u7ebf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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_server/","text":"CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7f16\u8bd1 \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u7528\u4e8e \u5728 Linux \u4e0a \u6784\u5efa \u548c \u6d4b\u8bd5 CarlaServer \u7684 \u811a\u672c ` ` ` shell script . / Setup . sh make make check \u5b89\u88c5 \u811a\u672c \u4f1a \u4e0b\u8f7d \u5e76 \u7f16\u8bd1 \u6240\u6709 \u5fc5\u9700 \u7684 \u4f9d\u8d56 \u9879 \u3002 Makefile \u8c03\u7528 CMake \u6765 \u6784\u5efa CarlaServer \u5e76 \u5c06 \u5176 \u5b89\u88c5 \u5728 \u201c Util / Install \u201d \u4e0b \u3002 ## \u534f\u8bae \u6240\u6709 \u6d88\u606f \u524d \u90fd \u9644\u52a0 \u4e00\u4e2a 32 \u4f4d \u65e0 \u7b26\u53f7 \u6574\u6570 \uff08 \u5c0f\u7aef \u5b57\u8282 \u5e8f \uff09 \uff0c \u6307\u793a \u5373\u5c06 \u5230\u6765 \u7684 \u6d88\u606f \u7684 \u5927\u5c0f \u3002 \u4f7f\u7528 \u4e09\u4e2a \u8fde\u7eed \u7684 \u7aef\u53e3 \uff0c - world - port ( \u9ed8\u8ba4 2000 ) - measurements - port = world - port + 1 - control - port = world - port + 2 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u7ebf\u7a0b \uff0c \u53ef\u4ee5 \u5f02\u6b65 \u53d1\u9001 / \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u3002 ### \u4e16\u754c \u7ebf\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bfb\u53d6 \u4e00\u4e2a \uff0c \u5199\u5165 \u4e00\u4e2a \u3002 \u59cb\u7ec8 \u662f protobuf \u6d88\u606f \u3002 [ client ] RequestNewEpisode [ server ] SceneDescription [ client ] EpisodeStart [ server ] EpisodeReady ... repeat ... ### \u6d4b\u91cf \u7ebf\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5 \u5199\u5165 \u7b2c\u4e00 \u4e00\u6761 \u7b2c\u4e00\u6761 \u6d4b\u91cf \u6d88\u606f \uff0c \u7136\u540e \u5199\u5165 \u5927\u91cf \u539f\u59cb \u56fe\u50cf \u3002 [ server ] Measurements [ server ] raw images ... repeat ... \u6bcf\u4e2a \u56fe\u50cf \u90fd \u662f \u4e00\u4e2a uint32 \u6570\u7ec4 [ width , height , type , FOV , color [ 0 ] , color [ 1 ] , ... ] \u5176\u4e2d FOV \u662f \u76f8\u673a \u6c34\u5e73 \u89c6\u91ce \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u6bcf\u79cd \u989c\u8272 \u90fd \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u5b58\u50a8 \u7684 FColor ( BGRA ) \uff0c \u53ef\u80fd \u7684 \u56fe\u50cf \u7c7b\u578b \u5305\u62ec type = 0 None ( RGB without any post - processing ) type = 1 SceneFinal ( RGB with post - processing present at the scene ) type = 2 Depth ( Depth Map ) type = 3 SemanticSegmentation ( Semantic Segmentation ) [ \u6b64\u5904 ] \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6d4b\u91cf \u4fe1\u606f \u3002 ### \u63a7\u5236 \u63a7\u5236\u7ebf \u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5 \u8bfb\u53d6 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u6bcf\u5e27 \u53d1\u9001 \u63a7\u5236 \u6d88\u606f \u3002 [ client ] Control ... repeat ... ` ` ` \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6bcf\u5e27 \u90fd \u4f1a \u6682\u505c \u6267\u884c \uff0c \u76f4\u5230 \u6536\u5230 \u63a7\u5236 \u6d88\u606f \u3002 \u63a5\u53e3 \u8be5\u5e93 \u5c01\u88c5 \u5728 C \u8bed\u8a00 \u4e2d \u7684 \u5355\u4e2a \u5305\u542b \u6587\u4ef6 \u201c carla / carla _ server . h \u201d \u4e2d \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u7528\u4e8e \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bfb\u53d6 \u548c \u5199\u5165 \u6d88\u606f \u7684 \u57fa\u672c \u63a5\u53e3 \uff0c \u9690\u85cf \u4e86 \u7f51\u7edc \u548c \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u90e8\u5206 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u51fd\u6570 \u90fd \u6709 \u4e00\u4e2a \u8d85\u65f6 \u53c2\u6570 \uff0c \u5e76\u4f1a \u963b\u585e \uff0c \u76f4\u5230 \u76f8\u5e94 \u7684 \u5f02\u6b65 \u64cd\u4f5c \u5b8c\u6210 \u6216 \u8fbe\u5230 \u8d85\u65f6 \u8981\u6c42 \u3002 \u5c06 \u8d85\u65f6 \u8bbe\u7f6e \u4e3a 0 \u53ef \u83b7\u5f97 \u975e \u963b\u585e \u8c03\u7528 \u3002 CarlaServer \u5b9e\u4f8b \u662f \u7528 carla _ make _ server ( ) \u521b\u5efa \u7684 \uff0c \u4f7f\u7528 \u540e\u5e94 \u88ab carla _ server _ free ( ptr ) \u9500\u6bc1 \u3002 \u8bbe\u8ba1 C API \u8d1f\u8d23 \u5c06 \u8bf7\u6c42 \u5206\u53d1 \u5230 \u76f8\u5e94 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6709 \u4e09\u4e2a \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6bcf\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5728 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4ece \u6982\u5ff5 \u4e0a \u8bb2 \uff0c \u6709 \u4e24\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5373 World Server \u548c Agent Server \u3002 World Server \u63a7\u5236 \u60c5\u8282 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u6bcf\u6b21 \u901a\u8fc7 RequestNewEpisode \u6d88\u606f \u5411 World Server \u8bf7\u6c42 \u65b0 \u60c5\u8282 \u65f6 \uff0c \u90fd \u4f1a \u542f\u52a8 \u65b0 \u60c5\u8282 \u3002 \u60c5\u8282 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c World Server \u5c06 \u542f\u52a8 Agent Server \u3002 Agent Server \u6709 \u4e24\u4e2a \u7ebf\u7a0b \uff0c \u4e00\u4e2a \u7528\u4e8e \u53d1\u9001 \u6d4b\u91cf \u6d41 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u63a5\u6536 \u63a7\u5236 \u3002 \u4e24\u4e2a \u4ee3\u7406 \u7ebf\u7a0b \u90fd \u901a\u8fc7 \u65e0\u9501 \u53cc \u7f13\u51b2 \u7f13\u51b2\u533a \u4e0e \u4e3b\u7ebf \u7a0b \u901a\u4fe1 \uff0c \u4ee5 \u52a0\u5feb \u6d88\u606f \u548c \u56fe\u50cf \u7684 \u6d41\u5f0f \u4f20\u8f93 \u3002 \u6d88\u606f \uff08 protobuf \uff09 \u7684 \u7f16\u7801 \u548c \u7f51\u7edc \u64cd\u4f5c \u662f \u5f02\u6b65 \u6267\u884c \u7684 \u3002","title":"CARLA \u670d\u52a1\u5668"},{"location":"carla_server/#carla","text":"","title":"CARLA \u670d\u52a1\u5668"},{"location":"carla_server/#_1","text":"\u63d0\u4f9b \u4e86 \u4e00\u4e9b \u7528\u4e8e \u5728 Linux \u4e0a \u6784\u5efa \u548c \u6d4b\u8bd5 CarlaServer \u7684 \u811a\u672c ` ` ` shell script . / Setup . sh make make check \u5b89\u88c5 \u811a\u672c \u4f1a \u4e0b\u8f7d \u5e76 \u7f16\u8bd1 \u6240\u6709 \u5fc5\u9700 \u7684 \u4f9d\u8d56 \u9879 \u3002 Makefile \u8c03\u7528 CMake \u6765 \u6784\u5efa CarlaServer \u5e76 \u5c06 \u5176 \u5b89\u88c5 \u5728 \u201c Util / Install \u201d \u4e0b \u3002 ## \u534f\u8bae \u6240\u6709 \u6d88\u606f \u524d \u90fd \u9644\u52a0 \u4e00\u4e2a 32 \u4f4d \u65e0 \u7b26\u53f7 \u6574\u6570 \uff08 \u5c0f\u7aef \u5b57\u8282 \u5e8f \uff09 \uff0c \u6307\u793a \u5373\u5c06 \u5230\u6765 \u7684 \u6d88\u606f \u7684 \u5927\u5c0f \u3002 \u4f7f\u7528 \u4e09\u4e2a \u8fde\u7eed \u7684 \u7aef\u53e3 \uff0c - world - port ( \u9ed8\u8ba4 2000 ) - measurements - port = world - port + 1 - control - port = world - port + 2 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u7ebf\u7a0b \uff0c \u53ef\u4ee5 \u5f02\u6b65 \u53d1\u9001 / \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u3002 ### \u4e16\u754c \u7ebf\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bfb\u53d6 \u4e00\u4e2a \uff0c \u5199\u5165 \u4e00\u4e2a \u3002 \u59cb\u7ec8 \u662f protobuf \u6d88\u606f \u3002 [ client ] RequestNewEpisode [ server ] SceneDescription [ client ] EpisodeStart [ server ] EpisodeReady ... repeat ... ### \u6d4b\u91cf \u7ebf\u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5 \u5199\u5165 \u7b2c\u4e00 \u4e00\u6761 \u7b2c\u4e00\u6761 \u6d4b\u91cf \u6d88\u606f \uff0c \u7136\u540e \u5199\u5165 \u5927\u91cf \u539f\u59cb \u56fe\u50cf \u3002 [ server ] Measurements [ server ] raw images ... repeat ... \u6bcf\u4e2a \u56fe\u50cf \u90fd \u662f \u4e00\u4e2a uint32 \u6570\u7ec4 [ width , height , type , FOV , color [ 0 ] , color [ 1 ] , ... ] \u5176\u4e2d FOV \u662f \u76f8\u673a \u6c34\u5e73 \u89c6\u91ce \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u6bcf\u79cd \u989c\u8272 \u90fd \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u5b58\u50a8 \u7684 FColor ( BGRA ) \uff0c \u53ef\u80fd \u7684 \u56fe\u50cf \u7c7b\u578b \u5305\u62ec type = 0 None ( RGB without any post - processing ) type = 1 SceneFinal ( RGB with post - processing present at the scene ) type = 2 Depth ( Depth Map ) type = 3 SemanticSegmentation ( Semantic Segmentation ) [ \u6b64\u5904 ] \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6d4b\u91cf \u4fe1\u606f \u3002 ### \u63a7\u5236 \u63a7\u5236\u7ebf \u7a0b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5 \u8bfb\u53d6 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u6bcf\u5e27 \u53d1\u9001 \u63a7\u5236 \u6d88\u606f \u3002 [ client ] Control ... repeat ... ` ` ` \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6bcf\u5e27 \u90fd \u4f1a \u6682\u505c \u6267\u884c \uff0c \u76f4\u5230 \u6536\u5230 \u63a7\u5236 \u6d88\u606f \u3002","title":"\u7f16\u8bd1"},{"location":"carla_server/#_2","text":"\u8be5\u5e93 \u5c01\u88c5 \u5728 C \u8bed\u8a00 \u4e2d \u7684 \u5355\u4e2a \u5305\u542b \u6587\u4ef6 \u201c carla / carla _ server . h \u201d \u4e2d \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u7528\u4e8e \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bfb\u53d6 \u548c \u5199\u5165 \u6d88\u606f \u7684 \u57fa\u672c \u63a5\u53e3 \uff0c \u9690\u85cf \u4e86 \u7f51\u7edc \u548c \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u90e8\u5206 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u51fd\u6570 \u90fd \u6709 \u4e00\u4e2a \u8d85\u65f6 \u53c2\u6570 \uff0c \u5e76\u4f1a \u963b\u585e \uff0c \u76f4\u5230 \u76f8\u5e94 \u7684 \u5f02\u6b65 \u64cd\u4f5c \u5b8c\u6210 \u6216 \u8fbe\u5230 \u8d85\u65f6 \u8981\u6c42 \u3002 \u5c06 \u8d85\u65f6 \u8bbe\u7f6e \u4e3a 0 \u53ef \u83b7\u5f97 \u975e \u963b\u585e \u8c03\u7528 \u3002 CarlaServer \u5b9e\u4f8b \u662f \u7528 carla _ make _ server ( ) \u521b\u5efa \u7684 \uff0c \u4f7f\u7528 \u540e\u5e94 \u88ab carla _ server _ free ( ptr ) \u9500\u6bc1 \u3002","title":"\u63a5\u53e3"},{"location":"carla_server/#_3","text":"C API \u8d1f\u8d23 \u5c06 \u8bf7\u6c42 \u5206\u53d1 \u5230 \u76f8\u5e94 \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6709 \u4e09\u4e2a \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6bcf\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5728 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4ece \u6982\u5ff5 \u4e0a \u8bb2 \uff0c \u6709 \u4e24\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5373 World Server \u548c Agent Server \u3002 World Server \u63a7\u5236 \u60c5\u8282 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u6bcf\u6b21 \u901a\u8fc7 RequestNewEpisode \u6d88\u606f \u5411 World Server \u8bf7\u6c42 \u65b0 \u60c5\u8282 \u65f6 \uff0c \u90fd \u4f1a \u542f\u52a8 \u65b0 \u60c5\u8282 \u3002 \u60c5\u8282 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c World Server \u5c06 \u542f\u52a8 Agent Server \u3002 Agent Server \u6709 \u4e24\u4e2a \u7ebf\u7a0b \uff0c \u4e00\u4e2a \u7528\u4e8e \u53d1\u9001 \u6d4b\u91cf \u6d41 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u63a5\u6536 \u63a7\u5236 \u3002 \u4e24\u4e2a \u4ee3\u7406 \u7ebf\u7a0b \u90fd \u901a\u8fc7 \u65e0\u9501 \u53cc \u7f13\u51b2 \u7f13\u51b2\u533a \u4e0e \u4e3b\u7ebf \u7a0b \u901a\u4fe1 \uff0c \u4ee5 \u52a0\u5feb \u6d88\u606f \u548c \u56fe\u50cf \u7684 \u6d41\u5f0f \u4f20\u8f93 \u3002 \u6d88\u606f \uff08 protobuf \uff09 \u7684 \u7f16\u7801 \u548c \u7f51\u7edc \u64cd\u4f5c \u662f \u5f02\u6b65 \u6267\u884c \u7684 \u3002","title":"\u8bbe\u8ba1"},{"location":"carla_settings/","text":"CARLA \u8bbe\u7f6e \u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 Carla \u8bbe\u7f6e CARLA \u4ece CarlaSettings . ini \u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u8bbe\u7f6e \u3002 \u6b64 \u6587\u4ef6 \u63a7\u5236 \u6a21\u62df \u7684 \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 \u65b9\u9762 \uff0c \u6bcf\u6b21 \u5f00\u59cb \u65b0 \u60c5\u8282 \u65f6 \uff08 \u6bcf\u6b21 \u52a0\u8f7d \u5173\u5361 \u65f6 \uff09 \u90fd \u4f1a \u52a0\u8f7d \u6b64 \u6587\u4ef6 \u3002 \u8bbe\u7f6e \u5c06 \u6309\u7167 \u4e0b \u4e00\u4e2a \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u52a0\u8f7d \uff0c \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u540e\u9762 \u7684 \u503c \u5c06 \u8986\u76d6 \u524d\u9762 \u7684 \u503c \u3002 { CarlaFolder } / Unreal / CarlaUE4 / Config / CarlaSettings . ini \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u63d0\u4f9b \u7684 \u6587\u4ef6 - carla - settings = \" Path / To / CarlaSettings . ini \" \u3002 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5982 - carla - server \u6216 - world - port \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e00\u96c6 \u6bcf\u4e00\u96c6 \u65b0 \u60c5\u8282 \u65f6 \u53d1\u9001 \u7684 \u8bbe\u7f6e \u6587\u4ef6 \u3002 \u770b \u4e00\u4e0b CARLA \u8bbe\u7f6e \u793a\u4f8b \u3002 \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u4ece \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u8bbe\u7f6e \u4e2d \u9009\u62e9 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u8981 \u9009\u62e9 \u4e00\u4e2a \uff0c \u8bf7 \u5728 CarlaSettings . ini \u4e2d \u8bbe\u7f6e \u952e WeatherId \u3002 \u4ee5\u4e0b \u9884\u8bbe \u53ef\u7528 0 - Default 1 - ClearNoon 2 - CloudyNoon 3 - WetNoon 4 - WetCloudyNoon 5 - MidRainyNoon 6 - HardRainNoon 7 - SoftRainNoon 8 - ClearSunset 9 - CloudySunset 10 - WetSunset 11 - WetCloudySunset 12 - MidRainSunset 13 - HardRainSunset 14 - SoftRainSunset \u4f8b\u5982 \uff0c \u8981 \u9009\u62e9 \u4e2d\u5348 \u6709 \u5927\u96e8 \u7684 \u5929\u6c14 \uff0c \u8bf7 \u6dfb\u52a0 \u5230 CarlaSettings . ini [ CARLA / LevelSettings ] WeatherId = 6 \u6a21\u62df \u6a21\u62df\u5668 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 - carla - server \u542f\u52a8 CARLA \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6267\u884c \u6682\u505c \uff0c \u76f4\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 - carla - settings = \" Path / To / CarlaSettings . ini \" \u4ece \u7ed9\u5b9a \u7684 INI \u6587\u4ef6 \u52a0\u8f7d \u8bbe\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 Example . CarlaSettings . ini \u3002 - carla - world - port = N \u5728 \u7aef\u53e3 N \u4e0a \u76d1\u542c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \uff0c \u4ee3\u7406 \u7aef\u53e3 \u5206\u522b \u8bbe\u7f6e \u4e3a N + 1 \u548c N + 2 \u3002 \u6fc0\u6d3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 - carla - no - hud \u9ed8\u8ba4 \u4e0d \u663e\u793a HUD \u3002 - carla - no - networking \u7981\u7528 \u7f51\u7edc \u3002 \u5982\u679c \u5b58\u5728 \u5219 \u8986\u76d6 - carla - server \u3002","title":"CARLA \u8bbe\u7f6e"},{"location":"carla_settings/#carla","text":"\u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002","title":"CARLA \u8bbe\u7f6e"},{"location":"carla_settings/#carla_1","text":"CARLA \u4ece CarlaSettings . ini \u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u8bbe\u7f6e \u3002 \u6b64 \u6587\u4ef6 \u63a7\u5236 \u6a21\u62df \u7684 \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 \u65b9\u9762 \uff0c \u6bcf\u6b21 \u5f00\u59cb \u65b0 \u60c5\u8282 \u65f6 \uff08 \u6bcf\u6b21 \u52a0\u8f7d \u5173\u5361 \u65f6 \uff09 \u90fd \u4f1a \u52a0\u8f7d \u6b64 \u6587\u4ef6 \u3002 \u8bbe\u7f6e \u5c06 \u6309\u7167 \u4e0b \u4e00\u4e2a \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u52a0\u8f7d \uff0c \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u540e\u9762 \u7684 \u503c \u5c06 \u8986\u76d6 \u524d\u9762 \u7684 \u503c \u3002 { CarlaFolder } / Unreal / CarlaUE4 / Config / CarlaSettings . ini \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u63d0\u4f9b \u7684 \u6587\u4ef6 - carla - settings = \" Path / To / CarlaSettings . ini \" \u3002 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5982 - carla - server \u6216 - world - port \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e00\u96c6 \u6bcf\u4e00\u96c6 \u65b0 \u60c5\u8282 \u65f6 \u53d1\u9001 \u7684 \u8bbe\u7f6e \u6587\u4ef6 \u3002 \u770b \u4e00\u4e0b CARLA \u8bbe\u7f6e \u793a\u4f8b \u3002","title":"Carla \u8bbe\u7f6e"},{"location":"carla_settings/#_1","text":"\u53ef\u4ee5 \u4ece \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u8bbe\u7f6e \u4e2d \u9009\u62e9 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u8981 \u9009\u62e9 \u4e00\u4e2a \uff0c \u8bf7 \u5728 CarlaSettings . ini \u4e2d \u8bbe\u7f6e \u952e WeatherId \u3002 \u4ee5\u4e0b \u9884\u8bbe \u53ef\u7528 0 - Default 1 - ClearNoon 2 - CloudyNoon 3 - WetNoon 4 - WetCloudyNoon 5 - MidRainyNoon 6 - HardRainNoon 7 - SoftRainNoon 8 - ClearSunset 9 - CloudySunset 10 - WetSunset 11 - WetCloudySunset 12 - MidRainSunset 13 - HardRainSunset 14 - SoftRainSunset \u4f8b\u5982 \uff0c \u8981 \u9009\u62e9 \u4e2d\u5348 \u6709 \u5927\u96e8 \u7684 \u5929\u6c14 \uff0c \u8bf7 \u6dfb\u52a0 \u5230 CarlaSettings . ini [ CARLA / LevelSettings ] WeatherId = 6","title":"\u5929\u6c14 \u9884\u8bbe"},{"location":"carla_settings/#_2","text":"- carla - server \u542f\u52a8 CARLA \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6267\u884c \u6682\u505c \uff0c \u76f4\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 - carla - settings = \" Path / To / CarlaSettings . ini \" \u4ece \u7ed9\u5b9a \u7684 INI \u6587\u4ef6 \u52a0\u8f7d \u8bbe\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 Example . CarlaSettings . ini \u3002 - carla - world - port = N \u5728 \u7aef\u53e3 N \u4e0a \u76d1\u542c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \uff0c \u4ee3\u7406 \u7aef\u53e3 \u5206\u522b \u8bbe\u7f6e \u4e3a N + 1 \u548c N + 2 \u3002 \u6fc0\u6d3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 - carla - no - hud \u9ed8\u8ba4 \u4e0d \u663e\u793a HUD \u3002 - carla - no - networking \u7981\u7528 \u7f51\u7edc \u3002 \u5982\u679c \u5b58\u5728 \u5219 \u8986\u76d6 - carla - server \u3002","title":"\u6a21\u62df\u5668 \u547d\u4ee4\u884c \u9009\u9879"},{"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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u540c id \u548c type \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u540c id \u548c type \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 \u4f7f \u8def\u5f84 \u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u8def\u5f84 \u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u8def\u5f84 \u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1 \u8fd0\u884c \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u8def\u5f84 \u70b9","title":"Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#carla","text":"Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 \u4f7f \u8def\u5f84 \u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u8def\u5f84 \u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u8def\u5f84 \u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1","title":"Carla \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u8def\u5f84 \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 \u4ee3\u7406 \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 \u5730\u56fe \u8f66\u8f86 \u884c\u4eba \u9053\u5177 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u5730\u56fe \u8f66\u8f86 \u884c\u4eba \u9053\u5177","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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u5c0f\u5b69 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/#_6","text":"","title":"\u5c0f\u5b69"},{"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/#_7","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 \u5783\u573e \u5783\u573e\u6876 \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 \u7269\u54c1 \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 \u5c0f \u7269\u54c1 \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 \u5546\u4e1a \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 \u6876 \u84dd\u56fe ID : static . prop . barrel \u7bb1\u5b50 \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 \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 \u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u84dd\u56fe ID : static . prop . trashbag \u5783\u573e \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 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u84dd\u56fe ID : static . prop . platformgarbage01 \u5783\u573e \u5783\u573e\u6876 \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 \u5bb6\u5177 \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 \u6742\u9879 \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 \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 \u7269\u54c1 \u888b \u5851\u6599 \u5851\u6599\u888b \u84dd\u56fe ID : static . prop . plasticbag \u8d2d\u7269 \u8d2d\u7269\u888b \u84dd\u56fe ID : static . prop . shoppingbag \u63a8\u8f66 \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 \u7bb1 \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 \u8863\u670d \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 \u4e2a\u4eba \u5c0f \u7269\u54c1 \u624b\u673a \u84dd\u56fe ID : static . prop . mobile \u94b1\u5305 \u84dd\u56fe ID : static . prop . purse \u8def \u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u84dd\u56fe ID : static . prop . streetbarrier \u9525\u4f53 \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 \u65bd\u5de5 \u94c1\u677f \u84dd\u56fe ID : static . prop . ironplank \u65bd\u5de5 \u8b66\u793a \u84dd\u56fe ID : static . prop . warningconstruction \u788e\u7247 \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 \u6807\u5fd7 \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 \u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u84dd\u56fe ID : static . prop . chainbarrier \u94fe \u6805\u680f \u672b\u7aef \u84dd\u56fe ID : static . prop . chainbarrierend \u957f\u51f3 \u957f\u51f3 01 \u84dd\u56fe ID : static . prop . bench01 \u957f\u51f3 02 \u84dd\u56fe ID : static . prop . bench02 \u5546\u4e1a \u9910\u8f66 \u84dd\u56fe ID : static . prop . foodcart \u4fe1\u606f \u4ead 01 \u84dd\u56fe ID : static . prop . kiosk _ 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . fountain \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \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 \u5783\u573e \u5783\u573e\u6876 \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 \u5c0f \u7269\u54c1 \u624b\u673a \u94b1\u5305","title":"\u4e2a\u4eba \u7684 \u7269\u54c1"},{"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 \u5546\u4e1a \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":"","title":"\u6876"},{"location":"catalogue_props/#_11","text":"\u84dd\u56fe ID : static . prop . barrel","title":"\u6876"},{"location":"catalogue_props/#_12","text":"","title":"\u7bb1\u5b50"},{"location":"catalogue_props/#_13","text":"\u84dd\u56fe ID : static . prop . bin","title":"\u5783\u573e\u6876"},{"location":"catalogue_props/#_14","text":"\u84dd\u56fe ID : static . prop . clothcontainer","title":"\u5e03\u5236 \u5bb9\u5668"},{"location":"catalogue_props/#_15","text":"\u84dd\u56fe ID : static . prop . container","title":"\u5783\u573e\u7bb1"},{"location":"catalogue_props/#_16","text":"\u84dd\u56fe ID : static . prop . glasscontainer","title":"\u73bb\u7483 \u5bb9\u5668"},{"location":"catalogue_props/#_17","text":"","title":"\u76d2\u5b50"},{"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/#_18","text":"","title":"\u5783\u573e"},{"location":"catalogue_props/#_19","text":"","title":"\u888b\u5b50"},{"location":"catalogue_props/#_20","text":"\u84dd\u56fe ID : static . prop . trashbag","title":"\u5783\u573e\u888b"},{"location":"catalogue_props/#_21","text":"","title":"\u5783\u573e"},{"location":"catalogue_props/#_22","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/#_23","text":"","title":"\u5e73\u53f0"},{"location":"catalogue_props/#01_3","text":"\u84dd\u56fe ID : static . prop . platformgarbage01","title":"\u5783\u573e \u5e73\u53f0 01"},{"location":"catalogue_props/#_24","text":"","title":"\u5783\u573e\u6876"},{"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/#_25","text":"","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#_26","text":"","title":"\u5bb6\u5177"},{"location":"catalogue_props/#03_4","text":"\u84dd\u56fe ID : static . prop . bench03","title":"\u957f\u51f3 03"},{"location":"catalogue_props/#_27","text":"\u84dd\u56fe ID : static . prop . gardenlamp","title":"\u5ead\u9662\u706f"},{"location":"catalogue_props/#_28","text":"\u84dd\u56fe ID : static . prop . pergola","title":"\u51c9\u68da"},{"location":"catalogue_props/#_29","text":"\u84dd\u56fe ID : static . prop . plasticchair","title":"\u5851\u6599 \u6905"},{"location":"catalogue_props/#_30","text":"\u84dd\u56fe ID : static . prop . plastictable","title":"\u5851\u6599 \u684c"},{"location":"catalogue_props/#_31","text":"\u84dd\u56fe ID : static . prop . slide","title":"\u6ed1\u68af"},{"location":"catalogue_props/#_32","text":"\u84dd\u56fe ID : static . prop . swing","title":"\u79cb\u5343"},{"location":"catalogue_props/#_33","text":"\u84dd\u56fe ID : static . prop . swingcouch","title":"\u79cb\u5343 \u6c99\u53d1"},{"location":"catalogue_props/#_34","text":"\u84dd\u56fe ID : static . prop . table","title":"\u684c\u5b50"},{"location":"catalogue_props/#_35","text":"\u84dd\u56fe ID : static . prop . trampoline","title":"\u8e66\u5e8a"},{"location":"catalogue_props/#_36","text":"","title":"\u6742\u9879"},{"location":"catalogue_props/#_37","text":"\u84dd\u56fe ID : static . prop . barbeque","title":"\u70e7\u70e4 \u67b6"},{"location":"catalogue_props/#_38","text":"\u84dd\u56fe ID : static . prop . clothesline","title":"\u667e\u8863\u7ef3"},{"location":"catalogue_props/#_39","text":"\u84dd\u56fe ID : static . prop . doghouse","title":"\u72d7\u7a9d"},{"location":"catalogue_props/#_40","text":"\u84dd\u56fe ID : static . prop . gnome","title":"\u4f8f\u5112"},{"location":"catalogue_props/#_41","text":"\u84dd\u56fe ID : static . prop . wateringcan","title":"\u55b7\u58f6"},{"location":"catalogue_props/#_42","text":"\u84dd\u56fe ID : static . prop . haybale","title":"\u5e72\u8349 \u6346"},{"location":"catalogue_props/#_43","text":"\u84dd\u56fe ID : static . prop . haybalelb","title":"\u5e72\u8349 \u6346 \u5907\u7528"},{"location":"catalogue_props/#_44","text":"","title":"\u82b1\u76c6"},{"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/#_45","text":"","title":"\u4e2a\u4eba \u7684 \u7269\u54c1"},{"location":"catalogue_props/#_46","text":"","title":"\u888b"},{"location":"catalogue_props/#_47","text":"\u84dd\u56fe ID : static . prop . plasticbag","title":"\u5851\u6599\u888b"},{"location":"catalogue_props/#_48","text":"\u84dd\u56fe ID : static . prop . shoppingbag","title":"\u8d2d\u7269\u888b"},{"location":"catalogue_props/#_49","text":"","title":"\u63a8\u8f66"},{"location":"catalogue_props/#_50","text":"\u84dd\u56fe ID : static . prop . shoppingcart","title":"\u8d2d\u7269\u8f66"},{"location":"catalogue_props/#_51","text":"\u84dd\u56fe ID : static . prop . shoppingtrolley","title":"\u8d2d\u7269 \u624b\u63a8\u8f66"},{"location":"catalogue_props/#_52","text":"","title":"\u7bb1"},{"location":"catalogue_props/#_53","text":"\u84dd\u56fe ID : static . prop . briefcase","title":"\u516c\u6587\u5305"},{"location":"catalogue_props/#_54","text":"\u84dd\u56fe ID : static . prop . guitarcase","title":"\u5409\u4ed6 \u76d2"},{"location":"catalogue_props/#_55","text":"\u84dd\u56fe ID : static . prop . travelcase","title":"\u65c5\u884c\u7bb1"},{"location":"catalogue_props/#_56","text":"","title":"\u8863\u670d"},{"location":"catalogue_props/#_57","text":"\u84dd\u56fe ID : static . prop . bike helmet","title":"\u81ea\u884c\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_58","text":"\u84dd\u56fe ID : static . prop . motorhelmet","title":"\u6469\u6258\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_59","text":"","title":"\u4e2a\u4eba \u5c0f \u7269\u54c1"},{"location":"catalogue_props/#_60","text":"\u84dd\u56fe ID : static . prop . mobile","title":"\u624b\u673a"},{"location":"catalogue_props/#_61","text":"\u84dd\u56fe ID : static . prop . purse","title":"\u94b1\u5305"},{"location":"catalogue_props/#_62","text":"","title":"\u8def"},{"location":"catalogue_props/#_63","text":"","title":"\u969c\u788d\u7269"},{"location":"catalogue_props/#_64","text":"\u84dd\u56fe ID : static . prop . streetbarrier","title":"\u8857\u9053 \u62a4\u680f"},{"location":"catalogue_props/#_65","text":"","title":"\u9525\u4f53"},{"location":"catalogue_props/#_66","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/#_67","text":"","title":"\u65bd\u5de5"},{"location":"catalogue_props/#_68","text":"\u84dd\u56fe ID : static . prop . ironplank","title":"\u94c1\u677f"},{"location":"catalogue_props/#_69","text":"\u84dd\u56fe ID : static . prop . warningconstruction","title":"\u65bd\u5de5 \u8b66\u793a"},{"location":"catalogue_props/#_70","text":"","title":"\u788e\u7247"},{"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/#_71","text":"","title":"\u6807\u5fd7"},{"location":"catalogue_props/#_72","text":"\u84dd\u56fe ID : static . prop . trafficwarning","title":"\u4ea4\u901a \u8b66\u544a"},{"location":"catalogue_props/#_73","text":"\u84dd\u56fe ID : static . prop . warningaccident","title":"\u4e8b\u6545 \u8b66\u544a"},{"location":"catalogue_props/#_74","text":"","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_75","text":"","title":"\u969c\u788d\u7269"},{"location":"catalogue_props/#_76","text":"\u84dd\u56fe ID : static . prop . chainbarrier","title":"\u94fe \u6805\u680f"},{"location":"catalogue_props/#_77","text":"\u84dd\u56fe ID : static . prop . chainbarrierend","title":"\u94fe \u6805\u680f \u672b\u7aef"},{"location":"catalogue_props/#_78","text":"","title":"\u957f\u51f3"},{"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/#_79","text":"","title":"\u5546\u4e1a"},{"location":"catalogue_props/#_80","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/#_81","text":"","title":"\u7eaa\u5ff5\u7891"},{"location":"catalogue_props/#_82","text":"\u84dd\u56fe ID : static . prop . fountain","title":"\u55b7\u6cc9"},{"location":"catalogue_props/#_83","text":"","title":"\u7eaa\u5ff5\u7891"},{"location":"catalogue_props/#_84","text":"\u84dd\u56fe ID : static . prop . maptable","title":"\u5730 \u56fe\u8868"},{"location":"catalogue_props/#_85","text":"\u84dd\u56fe ID : static . prop . advertisement","title":"\u5e7f\u544a"},{"location":"catalogue_props/#_86","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/#_87","text":"\u84dd\u56fe ID : static . prop . busstop","title":"\u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_88","text":"\u84dd\u56fe ID : static . prop . busstoplb","title":"\u5907\u7528 \u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_89","text":"\u84dd\u56fe ID : static . prop . atm","title":"\u81ea\u52a8 \u63d0\u6b3e\u673a"},{"location":"catalogue_props/#_90","text":"\u84dd\u56fe ID : static . prop . mailbox","title":"\u90ae\u7bb1"},{"location":"catalogue_props/#_91","text":"\u84dd\u56fe ID : static . prop . streetfountain","title":"\u8857\u5934 \u55b7\u6cc9"},{"location":"catalogue_props/#_92","text":"\u84dd\u56fe ID : static . prop . vendingmachine","title":"\u552e\u8d27\u673a"},{"location":"catalogue_props/#_93","text":"","title":"\u516c\u7528"},{"location":"catalogue_props/#_94","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 \u9500\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 \u9500\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 \u94fe\u63a5 \u83b7\u53d6 \u3002","title":"\u8d21\u732e\u8005 \u5951\u7ea6 \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 \u94fe\u63a5 \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 \u6784\u5efa Carla \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":"\u4e3a Carla \u505a\u51fa \u8d21\u732e"},{"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 \u6784\u5efa Carla \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 \u884c\u4eba \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 \u9500\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 \u9500\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 \u884c\u4eba \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 \u884c\u4eba \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 \u884c\u4eba \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 \u5bf9\u4e8e \u8f66\u8f86 \u3002 map . get _ spawn _ points ( ) \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 world . get _ random _ location ( ) \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u9500\u6bc1 \u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u4e0d\u56de \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u9500\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u6863\u4f4d \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 \u884c\u4eba \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 \u884c\u4eba \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 \u884c\u4eba \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u9500\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 \u9500\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 \u884c\u4eba \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 \u9500\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 \u9500\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 \u884c\u4eba","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 \u884c\u4eba \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 \u884c\u4eba \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 \u5bf9\u4e8e \u8f66\u8f86 \u3002 map . get _ spawn _ points ( ) \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 world . get _ random _ location ( ) \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u4e0d\u56de \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u9500\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":"\u9500\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u6863\u4f4d \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 \u884c\u4eba \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 \u884c\u4eba \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 \u884c\u4eba \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u9500\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 \u9500\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 \u8def\u5f84 \u70b9 \u8f66\u9053 \u8def\u53e3 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \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 \u8def\u5f84 \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":"Core map"},{"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 \u8def\u5f84 \u70b9 \u8f66\u9053 \u8def\u53e3 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \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 \u8def\u5f84 \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 \u4ee3\u7406 \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\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \uff0c \u7528\u4e8e \u68c0\u67e5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u6709 \u901a\u8fc7 listen \u6ce8\u518c \u7684 \u56de\u8c03 \u3002 stop ( ) \u662f \u4e00\u79cd \u505c\u6b62 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \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 \u6a21\u62df \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 \u538b\u7ebf 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":"Core sensors"},{"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 \u4ee3\u7406 \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\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \uff0c \u7528\u4e8e \u68c0\u67e5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u6709 \u901a\u8fc7 listen \u6ce8\u518c \u7684 \u56de\u8c03 \u3002 stop ( ) \u662f \u4e00\u79cd \u505c\u6b62 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \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 \u6a21\u62df \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 \u538b\u7ebf 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 \u4f7f\u7528 \u547d\u4ee4 \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 \u9500\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 \u9500\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 \u4f7f\u7528 \u547d\u4ee4 \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 \u9500\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 \u9500\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 \u95ee\u9898 VS \u63d0\u793a \u65e0\u6cd5 \u542f\u52a8 \u7a0b\u5e8f \u201c \\ DEBUG \\ ALL - BUILD \u201d , \u7cfb\u7edf \u627e \u4e0d\u5230 \u6307\u5b9a \u7684 \u6587\u4ef6 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u662f \uff1a \u9879\u76ee \u2014 > \u8bbe\u7f6e \u4e3a \u542f\u52a8 \u9879\u76ee \u3002 \u53c2\u8003 CMake \u4e2d\u6587 \u6559\u7a0b vs2019 CMake \u6559\u7a0b \uff0c \u4e0b\u8f7d CMake 3.26 \u7684 \u793a\u4f8b \u4ee3\u7801 \u3002 C++ API \u6587\u6863 C++ \u6559\u7a0b CMake \u94fe\u63a5 \u6743\u9650 \uff0c \u533a\u5206 PRIVATE \u3001 PUBLIC \u4e0e INTERFACE \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/#_2","text":"VS \u63d0\u793a \u65e0\u6cd5 \u542f\u52a8 \u7a0b\u5e8f \u201c \\ DEBUG \\ ALL - BUILD \u201d , \u7cfb\u7edf \u627e \u4e0d\u5230 \u6307\u5b9a \u7684 \u6587\u4ef6 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u662f \uff1a \u9879\u76ee \u2014 > \u8bbe\u7f6e \u4e3a \u542f\u52a8 \u9879\u76ee \u3002","title":"\u95ee\u9898"},{"location":"cpp/#_3","text":"CMake \u4e2d\u6587 \u6559\u7a0b vs2019 CMake \u6559\u7a0b \uff0c \u4e0b\u8f7d CMake 3.26 \u7684 \u793a\u4f8b \u4ee3\u7801 \u3002 C++ API \u6587\u6863 C++ \u6559\u7a0b CMake \u94fe\u63a5 \u6743\u9650 \uff0c \u533a\u5206 PRIVATE \u3001 PUBLIC \u4e0e INTERFACE \u3002","title":"\u53c2\u8003"},{"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 \uff08 Windows \u5ba2\u6237 \u5ba2\u6237\u7aef cmake \u6587\u4ef6 \uff09 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 # ToolChain . cmake \u793a\u4f8b 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 ) \u7f16\u8bd1 LibCarla . client \u65f6 \uff0c \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u4f20\u9012 \u7ed9 CMake 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 \u8fd9 \u5c06 \u5728 \u63d0\u4f9b \u7684 \u5b89\u88c5 \u8def\u5f84 \u4e0a \u751f\u6210 \u4ee5\u4e0b \u7ed3\u6784 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 ... \u6211\u4eec \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u9700\u8981 \u94fe\u63a5 \u5230 libcarla _ client . a \uff0c librpc . a \u3001 libRecast . a \u548c libDetour * . a \u3002 \u5982\u679c \u6211\u4eec \u5229\u7528 IO \u6211\u4eec \u9700\u8981 \u94fe\u63a5 \u7684 \u529f\u80fd \u548c / \u6216 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 boost _ filesystem \u3001 png \u3001 tiff \u548c / \u6216 jpeg \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u63d0\u4f9b \u7684 Makefile \u3002 \u5176\u4ed6 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u8bf4\u660e","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 \uff08 Windows \u5ba2\u6237 \u5ba2\u6237\u7aef cmake \u6587\u4ef6 \uff09 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 # ToolChain . cmake \u793a\u4f8b 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 ) \u7f16\u8bd1 LibCarla . client \u65f6 \uff0c \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u4f20\u9012 \u7ed9 CMake 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 \u8fd9 \u5c06 \u5728 \u63d0\u4f9b \u7684 \u5b89\u88c5 \u8def\u5f84 \u4e0a \u751f\u6210 \u4ee5\u4e0b \u7ed3\u6784 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 ... \u6211\u4eec \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u9700\u8981 \u94fe\u63a5 \u5230 libcarla _ client . a \uff0c librpc . a \u3001 libRecast . a \u548c libDetour * . a \u3002 \u5982\u679c \u6211\u4eec \u5229\u7528 IO \u6211\u4eec \u9700\u8981 \u94fe\u63a5 \u7684 \u529f\u80fd \u548c / \u6216 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 boost _ filesystem \u3001 png \u3001 tiff \u548c / \u6216 jpeg \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u63d0\u4f9b \u7684 Makefile \u3002","title":"\u5b83 \u7684 \u5de5\u4f5c \u539f\u7406"},{"location":"cpp_client/#_3","text":"\u94fe\u63a5 \u94fe\u63a5\u5e93 \u8bf4\u660e","title":"\u5176\u4ed6"},{"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 \u4e4b\u524d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u6b65\u9aa4 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 \u4ee3\u7406 \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 \u4e4b\u524d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u6b65\u9aa4 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 \u4ee3\u7406 \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 \u4eff\u771f \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 \u4eff\u771f \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":"Ecosys ansys"},{"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 \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 \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":"Ecosys femfx"},{"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 \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 \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":"Ecosys iss"},{"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 \u4eff\u771f \u800c \u6784\u5efa \u7684 \u4e09\u7ef4 \u5185\u5bb9 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4eff\u771f \u4e09\u7ef4 \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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4eff\u771f \u800c \u6784\u5efa \u7684 \u4e09\u7ef4 \u5185\u5bb9 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4eff\u771f \u4e09\u7ef4 \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 \u4eff\u771f\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":"epic_automotive_materials/","text":"\u5982\u4f55 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u91cd\u8981 \u81ea 0.8 . 0 \u7248\u672c \u8d77 \uff0c CARLA \u9ed8\u8ba4 \u4e0d \u4f7f\u7528 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \uff0c \u4ecd\u7136 \u53ef\u4ee5 \u542f\u7528 \u5b83\u4eec \u3002 Epic Game \u63d0\u4f9b \u4e86 \u4e00\u5957 \u514d\u8d39 \u4f7f\u7528 \u7684 \u903c\u771f \u7684 \u6c7d\u8f66 \u6750\u8d28 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u5c06 \u89e3\u91ca \u5982\u4f55 \u4e0b\u8f7d \u8fd9\u4e9b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u94fe\u63a5 \u5230 \u6211\u4eec \u7684 \u8f66\u8f86 \uff0c \u4ee5 \u83b7\u5f97 \u66f4 \u903c\u771f \u7684 \u8f66\u6f06 \u3002 \u4ece \u5e02\u573a \u4e0b\u8f7d Epic Games \u7684 \u6c7d\u8f66 \u6750\u6599 \u5305 \u53ef\u4ee5 \u4ece \u865a\u5e7b \u5f15\u64ce \u5e02\u573a \u514d\u8d39 \u4e0b\u8f7d \u3002 \u7b14\u8bb0 \u4e0d\u5e78 \u7684 \u662f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u5e02\u573a \u4ec5 \u5728 Windows \u4e0a \u53ef\u7528 \uff0c \u56e0\u6b64 \u60a8 \u9700\u8981 \u4e00\u53f0 Windows \u673a\u5668 \u6765 \u4e0b\u8f7d \u6b64 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f51\u7ad9 \u5b89\u88c5 Epic Games Launcher \u3002 \u4ee5 0 \u7f8e\u5143 \u7684 \u4ef7\u683c \u8d2d\u4e70 \u6c7d\u8f66 \u6750\u6599 \u5305 \u3002 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u865a\u62df \u9879\u76ee \u5e76 \u5411 \u5176\u4e2d \u6dfb\u52a0 \u6c7d\u8f66 \u6750\u6599 \u5305 \u3002 \u5728 \u65b0\u5efa \u9879\u76ee \u7684 \u201c Content \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u627e\u5230 \u201c AutomotiveMaterials \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u590d\u5236 \u590d\u5236\u5230 CARLA \u9879\u76ee { NewProject } / Content / AutomotiveMaterials -- > { CARLA } / Unreal / CarlaUE4 / Content / AutomotiveMaterials \u624b\u52a8 \u94fe\u63a5 \u6750\u6599 \u6253\u5f00 \u9879\u76ee \u540e \uff0c \u60a8 \u5e94\u8be5 \u94fe\u63a5 \u521a\u521a \u4e0b\u8f7d \u7684 \u6c7d\u8f66 \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 Content / Static / Vehicles / GeneralMaterials / MaterialRedirectors \u5e76 \u6253\u5f00 RedirectorInstance \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u7a97\u683c \u4e0b \uff0c \u641c\u7d22 \u201c \u7236 \u201d \u6750\u6599 \uff0c \u5e76\u7528 \u201c M _ Carpaint \u201d \u6750\u6599 \u66ff\u6362 \u201c DummyCar \u201d \u6750\u6599 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u201c RedirectorInstance \u201d \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u4e86 \u3002","title":"\u5982\u4f55 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28"},{"location":"epic_automotive_materials/#epic","text":"\u91cd\u8981 \u81ea 0.8 . 0 \u7248\u672c \u8d77 \uff0c CARLA \u9ed8\u8ba4 \u4e0d \u4f7f\u7528 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \uff0c \u4ecd\u7136 \u53ef\u4ee5 \u542f\u7528 \u5b83\u4eec \u3002 Epic Game \u63d0\u4f9b \u4e86 \u4e00\u5957 \u514d\u8d39 \u4f7f\u7528 \u7684 \u903c\u771f \u7684 \u6c7d\u8f66 \u6750\u8d28 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u5c06 \u89e3\u91ca \u5982\u4f55 \u4e0b\u8f7d \u8fd9\u4e9b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u94fe\u63a5 \u5230 \u6211\u4eec \u7684 \u8f66\u8f86 \uff0c \u4ee5 \u83b7\u5f97 \u66f4 \u903c\u771f \u7684 \u8f66\u6f06 \u3002","title":"\u5982\u4f55 \u94fe\u63a5 Epic \u7684 \u6c7d\u8f66 \u6750\u8d28"},{"location":"epic_automotive_materials/#_1","text":"Epic Games \u7684 \u6c7d\u8f66 \u6750\u6599 \u5305 \u53ef\u4ee5 \u4ece \u865a\u5e7b \u5f15\u64ce \u5e02\u573a \u514d\u8d39 \u4e0b\u8f7d \u3002 \u7b14\u8bb0 \u4e0d\u5e78 \u7684 \u662f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u5e02\u573a \u4ec5 \u5728 Windows \u4e0a \u53ef\u7528 \uff0c \u56e0\u6b64 \u60a8 \u9700\u8981 \u4e00\u53f0 Windows \u673a\u5668 \u6765 \u4e0b\u8f7d \u6b64 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f51\u7ad9 \u5b89\u88c5 Epic Games Launcher \u3002 \u4ee5 0 \u7f8e\u5143 \u7684 \u4ef7\u683c \u8d2d\u4e70 \u6c7d\u8f66 \u6750\u6599 \u5305 \u3002 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u865a\u62df \u9879\u76ee \u5e76 \u5411 \u5176\u4e2d \u6dfb\u52a0 \u6c7d\u8f66 \u6750\u6599 \u5305 \u3002 \u5728 \u65b0\u5efa \u9879\u76ee \u7684 \u201c Content \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u627e\u5230 \u201c AutomotiveMaterials \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u590d\u5236 \u590d\u5236\u5230 CARLA \u9879\u76ee { NewProject } / Content / AutomotiveMaterials -- > { CARLA } / Unreal / CarlaUE4 / Content / AutomotiveMaterials","title":"\u4ece \u5e02\u573a \u4e0b\u8f7d"},{"location":"epic_automotive_materials/#_2","text":"\u6253\u5f00 \u9879\u76ee \u540e \uff0c \u60a8 \u5e94\u8be5 \u94fe\u63a5 \u521a\u521a \u4e0b\u8f7d \u7684 \u6c7d\u8f66 \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 Content / Static / Vehicles / GeneralMaterials / MaterialRedirectors \u5e76 \u6253\u5f00 RedirectorInstance \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u7a97\u683c \u4e0b \uff0c \u641c\u7d22 \u201c \u7236 \u201d \u6750\u6599 \uff0c \u5e76\u7528 \u201c M _ Carpaint \u201d \u6750\u6599 \u66ff\u6362 \u201c DummyCar \u201d \u6750\u6599 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u201c RedirectorInstance \u201d \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u4e86 \u3002","title":"\u624b\u52a8 \u94fe\u63a5 \u6750\u6599"},{"location":"examples/","text":"\u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u811a\u672c \u751f\u6210 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf python examples / generate _ traffic . py -- host localhost -- port 2000 - n 50 - w 20 -- safe \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 python examples / manual _ control . py -- host localhost -- port 2000 -- rolename hero -- keep _ ego _ vehicle \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \uff1a python examples / manual _ control . py -- filter walker . pedestrian . * \u7ed8\u5236 \u8fb9\u754c \u6846 \u811a\u672c \u5c06 \u6839\u636e \u7528\u6237 \u6307\u5b9a \u7684 \u89c6\u89d2 view \uff08 \u4e0a\u65b9 above \u3001 \u540e\u9762 behind \uff09 \u9644\u52a0 \u4e00\u4e2a RGB \u76f8\u673a \uff0c \u5e76 \u5728 \u8ddd\u79bb distance \u4e4b\u5185 \u7ed8\u5236 \u6240\u6709 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 python examples / sensor _ bounding _ box . py -- host localhost -- port 2000 -- rolename hero -- view above -- distance 100 -- res 800x600 -- fov 90 \u6ce8\u610f \u8fd0\u884c \u4e4b\u524d \uff0c \u9700\u8981 \u5148 \u8fd0\u884c manual _ control . py \u751f\u6210 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5426\u5219 \u8fd0\u52a8 \u62a5\u9519 \uff1a Actor hero not found \u3002 \u5e76\u4e14 \u5c06 \u539f\u59cb \u811a\u672c \u7684 \u73af\u5883 \u8def\u5f84 .. / src \u6539\u4e3a .. \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u516d\u79cd \u76f8\u673a \u8be5 \u811a\u672c \u4e3a \u60a8 \u63d0\u4f9b \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u5404\u79cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 python examples / rgb _ camera _ example . py -- host localhost -- port 2000 -- rolename hero \u8def\u5f84 \u70b9 \u8ddf\u8e2a \u8be5 \u811a\u672c \u5b9e\u73b0 \u4e86 \u4e00\u4e2a \u7b80\u5355 \u7684 \u8def\u5f84 \u70b9 \u8ddf\u8e2a \u65b9\u6cd5 \u3002 \u5b83 \u5c06 \u6cbf\u7740 \u5730\u56fe \u4e0a \u7684 \u8def\u5f84 \u70b9 \u884c\u9a76 \uff0c \u5e76 \u5728 \u5230\u8fbe \u8def\u5f84 \u70b9 \u7ec8\u70b9 \u65f6 \u505c\u6b62 \u3002 python examples / waypoint _ follow . py -- host localhost -- port 2000 -- rolename hero -- map Town01 -- json _ file data / town01 _ waypoints . json -- sync -- fixed _ delta _ seconds = 0.05 -- spawn -- visualize -- camera _ follow \u6ce8\u610f \u8fd0\u884c \u4e4b\u524d \u9700\u8981 \u5148 \u8bd5\u7528 python config . py - m Town01 \u5c06 \u5730\u56fe \u5207\u6362 \u5230 Town01 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6fc0\u5149 \u70b9\u4e91 \u6b64 \u811a\u672c \u63d0\u4f9b \u4e86 \u5982\u4f55 \u4f7f\u7528 Open3D \u53ef\u89c6 \u53ef\u89c6\u5316 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u70b9\u4e91 \u548c \u96f7\u8fbe \u6570\u636e \u7684 \u793a\u4f8b \u3002 python examples / 3d _ lidar . py -- host localhost -- port 2000 -- rolename hero -- keep _ ego _ vehicle","title":"Examples"},{"location":"examples/#_1","text":"","title":"\u4ea4\u4e92\u5f0f \u811a\u672c"},{"location":"examples/#_2","text":"python examples / generate _ traffic . py -- host localhost -- port 2000 - n 50 - w 20 -- safe","title":"\u751f\u6210 \u4ea4\u901a\u6d41\u91cf"},{"location":"examples/#_3","text":"python examples / manual _ control . py -- host localhost -- port 2000 -- rolename hero -- keep _ ego _ vehicle \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \uff1a python examples / manual _ control . py -- filter walker . pedestrian . *","title":"\u624b\u52a8 \u63a7\u5236 \u8f66\u8f86"},{"location":"examples/#_4","text":"\u811a\u672c \u5c06 \u6839\u636e \u7528\u6237 \u6307\u5b9a \u7684 \u89c6\u89d2 view \uff08 \u4e0a\u65b9 above \u3001 \u540e\u9762 behind \uff09 \u9644\u52a0 \u4e00\u4e2a RGB \u76f8\u673a \uff0c \u5e76 \u5728 \u8ddd\u79bb distance \u4e4b\u5185 \u7ed8\u5236 \u6240\u6709 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 python examples / sensor _ bounding _ box . py -- host localhost -- port 2000 -- rolename hero -- view above -- distance 100 -- res 800x600 -- fov 90 \u6ce8\u610f \u8fd0\u884c \u4e4b\u524d \uff0c \u9700\u8981 \u5148 \u8fd0\u884c manual _ control . py \u751f\u6210 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5426\u5219 \u8fd0\u52a8 \u62a5\u9519 \uff1a Actor hero not found \u3002 \u5e76\u4e14 \u5c06 \u539f\u59cb \u811a\u672c \u7684 \u73af\u5883 \u8def\u5f84 .. / src \u6539\u4e3a .. \u3002","title":"\u7ed8\u5236 \u8fb9\u754c \u6846"},{"location":"examples/#_5","text":"\u8be5 \u811a\u672c \u4e3a \u60a8 \u63d0\u4f9b \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u5404\u79cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 python examples / rgb _ camera _ example . py -- host localhost -- port 2000 -- rolename hero","title":"\u53ef\u89c6\u5316 \u516d\u79cd \u76f8\u673a"},{"location":"examples/#_6","text":"\u8be5 \u811a\u672c \u5b9e\u73b0 \u4e86 \u4e00\u4e2a \u7b80\u5355 \u7684 \u8def\u5f84 \u70b9 \u8ddf\u8e2a \u65b9\u6cd5 \u3002 \u5b83 \u5c06 \u6cbf\u7740 \u5730\u56fe \u4e0a \u7684 \u8def\u5f84 \u70b9 \u884c\u9a76 \uff0c \u5e76 \u5728 \u5230\u8fbe \u8def\u5f84 \u70b9 \u7ec8\u70b9 \u65f6 \u505c\u6b62 \u3002 python examples / waypoint _ follow . py -- host localhost -- port 2000 -- rolename hero -- map Town01 -- json _ file data / town01 _ waypoints . json -- sync -- fixed _ delta _ seconds = 0.05 -- spawn -- visualize -- camera _ follow \u6ce8\u610f \u8fd0\u884c \u4e4b\u524d \u9700\u8981 \u5148 \u8bd5\u7528 python config . py - m Town01 \u5c06 \u5730\u56fe \u5207\u6362 \u5230 Town01 \u3002","title":"\u8def\u5f84 \u70b9 \u8ddf\u8e2a"},{"location":"examples/#_7","text":"\u6b64 \u811a\u672c \u63d0\u4f9b \u4e86 \u5982\u4f55 \u4f7f\u7528 Open3D \u53ef\u89c6 \u53ef\u89c6\u5316 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u70b9\u4e91 \u548c \u96f7\u8fbe \u6570\u636e \u7684 \u793a\u4f8b \u3002 python examples / 3d _ lidar . py -- host localhost -- port 2000 -- rolename hero -- keep _ ego _ vehicle","title":"\u53ef\u89c6\u5316 \u6fc0\u5149 \u70b9\u4e91"},{"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 \u5de5\u5177 \u8bad\u7ec3 \u6570\u636e \u751f\u6210 \u2014 \u751f\u6210 \u5404\u79cd \u9a7e\u9a76 \u573a\u666f \u5e76 \u6355\u83b7 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u753b\u7ebf \u2014 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7ed8\u5236 \u4fef\u89c6 \u76f8\u673a \u4e2d \u7684 \u7ebf \uff0c \u5e76 \u4fdd\u5b58 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u573a\u666f \u751f\u6210 \u573a\u666f \u2014 \u4f7f\u7528 \u7279\u5b9a \u9886\u57df \u5efa\u6a21 \u9886\u57df\u5efa\u6a21 \u8bed\u8a00 \u751f\u6210 \u81ea\u52a8 \u9a7e\u9a76 \u573a\u666f \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 \u4ee3\u7406 \u2014 \u4ee3\u7406 \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":"\u8bad\u7ec3 \u6570\u636e \u751f\u6210 \u2014 \u751f\u6210 \u5404\u79cd \u9a7e\u9a76 \u573a\u666f \u5e76 \u6355\u83b7 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u753b\u7ebf \u2014 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7ed8\u5236 \u4fef\u89c6 \u76f8\u673a \u4e2d \u7684 \u7ebf \uff0c \u5e76 \u4fdd\u5b58 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002","title":"\u5de5\u5177"},{"location":"ext_docs/#_3","text":"\u751f\u6210 \u573a\u666f \u2014 \u4f7f\u7528 \u7279\u5b9a \u9886\u57df \u5efa\u6a21 \u9886\u57df\u5efa\u6a21 \u8bed\u8a00 \u751f\u6210 \u81ea\u52a8 \u9a7e\u9a76 \u573a\u666f \u3002","title":"\u573a\u666f"},{"location":"ext_docs/#_4","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 \u4ee3\u7406 \u2014 \u4ee3\u7406 \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/#_5","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/#_6","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/#_7","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/#_8","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":"File specification"},{"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 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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u5730\u56fe \u548c \u5bfc\u822a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \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 \u6e32\u67d3 \u53f2\u8bd7 \u6a21\u5f0f \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u8fdb\u9636 \u6b65\u9aa4 \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 \u9500\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u84dd \u56fe\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 \uff08 RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 \uff09 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \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 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u4ee3\u7406 \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 \u8282\u62cd \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8282\u62cd \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u8282\u62cd \u5e76 \u83b7\u53d6 \u8282\u62cd \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 \u9500\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 \u534f\u540c \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u534f\u540c \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":"Foundations"},{"location":"foundations/#_1","text":"\u672c\u9875 \u4ecb\u7ecd \u4e86 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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u5730\u56fe \u548c \u5bfc\u822a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \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 \u6e32\u67d3 \u53f2\u8bd7 \u6a21\u5f0f \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u8fdb\u9636 \u6b65\u9aa4","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 \u9500\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":"\u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u84dd \u56fe\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 \uff08 RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 \uff09 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \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 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u8d23\u4efb \u654f\u611f \u5b89\u5168","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 \u4ee3\u7406 \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 \u8282\u62cd \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8282\u62cd \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u8282\u62cd \u5e76 \u83b7\u53d6 \u8282\u62cd \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 \u9500\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 \u534f\u540c \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u534f\u540c \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":"game/","text":"\u6e38\u620f \u8861\u91cf \u624b\u63a7 \u6c7d\u8f66 \u7684 \u6027\u80fd \u5206\u6570 \u7ef4\u6301 \u4e0d\u53d8 \u5c31 \u52a0\u5206 \u6263\u5206 \uff1a \u78b0\u649e \u3001 \u538b\u7ebf \uff1b \u5173\u5361 \uff1a \u5929\u6c14 \uff1b \u6548\u679c \u6e38\u620f \u8bf4\u660e \uff1a \u7ffb\u8bd1 \u3001 \u952e\u76d8 \u63a7\u5236 \uff1b \u5168\u5c4f \uff1a \u6309 F11 \u5168\u5c4f \u3001 F11 \u6216 Esc \u9000\u51fa \u5168\u5c4f \u5934\u663e \uff1a \u5206\u6570 \u3001 \u5404\u79cd \u6307\u6807 \uff08 \u53ef\u4ee5 \u9690\u85cf \uff09 \uff1b \u5207\u6362 \u5730\u56fe \u3001 \u8f66\u8f86 \uff1b","title":"\u6e38\u620f"},{"location":"game/#_1","text":"","title":"\u6e38\u620f"},{"location":"game/#_2","text":"\u5206\u6570 \u7ef4\u6301 \u4e0d\u53d8 \u5c31 \u52a0\u5206 \u6263\u5206 \uff1a \u78b0\u649e \u3001 \u538b\u7ebf \uff1b \u5173\u5361 \uff1a \u5929\u6c14 \uff1b","title":"\u8861\u91cf \u624b\u63a7 \u6c7d\u8f66 \u7684 \u6027\u80fd"},{"location":"game/#_3","text":"\u6e38\u620f \u8bf4\u660e \uff1a \u7ffb\u8bd1 \u3001 \u952e\u76d8 \u63a7\u5236 \uff1b \u5168\u5c4f \uff1a \u6309 F11 \u5168\u5c4f \u3001 F11 \u6216 Esc \u9000\u51fa \u5168\u5c4f \u5934\u663e \uff1a \u5206\u6570 \u3001 \u5404\u79cd \u6307\u6807 \uff08 \u53ef\u4ee5 \u9690\u85cf \uff09 \uff1b \u5207\u6362 \u5730\u56fe \u3001 \u8f66\u8f86 \uff1b","title":"\u6548\u679c"},{"location":"how_to_add_assets/","text":"\u5982\u4f55 \u6dfb\u52a0 \u8d44\u4ea7 \u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 \u6dfb\u52a0 \u8f66\u8f86 \u6309\u7167 \u827a\u672f \u6307\u5357 \u521b\u5efa \u9aa8\u67b6 \u7f51\u683c \u4f53 \u548c \u7269\u7406 \u8d44\u4ea7 \u3002 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u53c2\u9605 \u8bf7\u53c2\u9605 \u8f66\u8f86 \u7528\u6237 \u6307\u5357 \u3002 \u5c06 fbx \u4f5c\u4e3a Skelletal Mesh \u5bfc\u5165 \u5bfc\u5165\u5230 \u5176 \u81ea\u5df1 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d Content / Static / Vehicles \u3002 \u7269\u7406 \u8d44\u4ea7 \u548c \u9aa8\u67b6 \u5e94 \u81ea\u52a8 \u521b\u5efa \uff0c \u5e76 \u5c06 \u4e09\u8005 \u94fe\u63a5 \u5728 \u4e00\u8d77 \u3002 \u8c03\u6574 \u7269\u7406 \u8d44\u4ea7 \u3002 \u5220\u9664 \u81ea\u52a8 \u521b\u5efa \u7684 \u8d44\u4ea7 \uff0c \u5e76 \u4e3a \u4e0e Vehicle _ Base \u5f62\u72b6 \u5339\u914d \u7684 \u9aa8\u9abc \u6dfb\u52a0 \u6846 \uff0c \u786e\u4fdd \u542f\u7528 \u4e86 \u751f\u6210 \u649e\u51fb \u4e8b\u4ef6 \u3002 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u6dfb\u52a0 \u4e00\u4e2a \u7403\u4f53 \uff0c \u5e76 \u5c06 \u5176 \u201c \u7269\u7406 \u7c7b\u578b \u201d \u8bbe\u7f6e \u4e3a \u201c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u201d \u3002 \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a \u201c \u52a8\u753b \u84dd\u56fe \u201d \uff0c \u521b\u5efa \u65f6 \u9009\u62e9 \u201c VehicleAnimInstance \u201d \u4f5c\u4e3a \u7236\u7c7b \uff0c \u5e76 \u4ee5\u6b64 \u6c7d\u8f66 \u8f66\u6a21 \u6a21\u578b \u6c7d\u8f66\u6a21\u578b \u7684 \u9aa8\u67b6 \u4f5c\u4e3a \u76ee\u6807 \u9aa8\u67b6 \u3002 \u6dfb\u52a0 \u52a8\u753b \u753b\u56fe \u52a8\u753b\u56fe \uff0c \u5982 \u4e0a\u9762 \u7ed9\u51fa \u7684 \u94fe\u63a5 \u6240\u793a \uff08 \u6216 \u5728 \u5176\u4ed6 \u6c7d\u8f66 \u7684 \u52a8\u753b \u4e2d \u67e5\u627e \uff0c \u5982 Mustang \uff09 \u3002 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Content / Blueprints / Vehicles / < vehicle - model > \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u521b\u5efa \u4e24\u4e2a \u4ece \u201c VehicleWheel \u201d \u7c7b \u6d3e\u751f \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u5b83\u4eec \u547d\u540d \u4e3a < vehicle - model > _ FrontWheel \u548c < vehicle - model > _ RearWheel \u3002 \u5c06 \u5b83\u4eec \u7684 \u201c \u5f62\u72b6 \u534a\u5f84 \u201d \u8bbe\u7f6e \u4e3a \u4e0e \u7f51\u683c \u8f6e \u534a\u5f84 \u5b8c\u5168 \u5339\u914d \uff08 \u6ce8\u610f \uff0c \u662f \u534a\u5f84 \u800c \u4e0d\u662f \u76f4\u5f84 \uff09 \u3002 \u5c06 \u5b83\u4eec \u7684 \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 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a \u84dd\u56fe \u7c7b \uff0c \u4ece\u4e2d \u6d3e \u751f\u51fa \u5e76 BaseVehiclePawn \u8c03\u7528 \u5b83 < vehicle - model > \u3002 \u6253\u5f00 \u5b83 \u8fdb\u884c \u7f16\u8f91 \u5e76 \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 \u7ec4\u4ef6 \u201c VehicleMovement \u201d \uff0c \u5728 \u201c Vehicle Setup \u201d \u4e0b \u5c55\u5f00 \u201c Wheel Setups \u201d \uff0c \u8bbe\u7f6e \u6bcf\u4e2a \u8f66\u8f6e 0 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ FrontWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Front _ Left 1 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ FrontWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Front _ Right 2 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ RearWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Rear _ Left 3 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ RearWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Rear _ Right \u5411 \u5176\u4e2d \u6dfb\u52a0 \u4e00\u4e2a \u540d\u4e3a \u201c Box \u201d \u7684 \u76d2\u5b50 \u7ec4\u4ef6 \uff08 \u53c2\u89c1 Mustang \u84dd\u56fe \uff09 \uff0c \u5e76 \u5c06 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u4ece \u4e0a\u65b9 \u8986\u76d6 \u8f66\u8f86 \u533a\u57df \u3002 \u786e\u4fdd \u8bbe\u7f6e \u4e86 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u9690\u85cf \u5728 \u6e38\u620f \u4e2d \u6a21\u62df \u7269\u7406 \u5df2 \u7981\u7528 \u7981\u7528 \u751f\u6210 \u91cd\u53e0 \u4e8b\u4ef6 \u78b0\u649e \u9884\u8bbe \u8bbe\u7f6e \u4e3a \u201c NoCollision \u201d \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 \u6c7d\u8f66 \u84dd\u56fe \u3002 \u5730\u56fe \u751f\u6210 \u5bf9\u4e8e \u9053\u8def \u751f\u6210 \uff0c \u9884\u8ba1 \u4f1a \u627e\u5230 \u4ee5\u4e0b \u7f51\u683c # Enum Filepath RoadTwoLanes _ LaneLeft at \" Content / Static / Road / St _ Road _ TileRoad _ RoadL . uasset \" RoadTwoLanes _ LaneRight at \" Content / Static / Road / St _ Road _ TileRoad _ RoadR . uasset \" RoadTwoLanes _ SidewalkLeft at \" Content / Static / SideWalk / St _ Road _ TileRoad _ SidewalkL . uasset \" RoadTwoLanes _ SidewalkRight at \" Content / Static / SideWalk / St _ Road _ TileRoad _ SidewalkR . uasset \" RoadTwoLanes _ LaneMarkingSolid at \" Content / Static / RoadLines / St _ Road _ TileRoad _ LaneMarkingSolid . uasset \" RoadTwoLanes _ LaneMarkingBroken at \" Content / Static / RoadLines / St _ Road _ TileRoad _ LaneMarkingBroken . uasset \" Road90DegTurn _ Lane0 at \" Content / Static / Road / St _ Road _ Curve _ Road1 . uasset \" Road90DegTurn _ Lane1 at \" Content / Static / Road / St _ Road _ Curve _ Road2 . uasset \" Road90DegTurn _ Lane2 at \" Content / Static / Road / St _ Road _ Curve _ Road3 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road4 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road5 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road6 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road7 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road8 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road9 . uasset \" Road90DegTurn _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk1 . uasset \" Road90DegTurn _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk2 . uasset \" Road90DegTurn _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk3 . uasset \" Road90DegTurn _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk4 . uasset \" Road90DegTurn _ LaneMarking at \" Content / Static / Road / St _ Road _ Curve _ LaneMarking . uasset \" RoadTIntersection _ Lane0 at \" Content / Static / Road / St _ Road _ TCross _ Road1 . uasset \" RoadTIntersection _ Lane1 at \" Content / Static / Road / St _ Road _ TCross _ Road2 . uasset \" RoadTIntersection _ Lane2 at \" Content / Static / Road / St _ Road _ TCross _ Road3 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road4 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road5 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road6 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road7 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road8 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road9 . uasset \" RoadTIntersection _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk1 . uasset \" RoadTIntersection _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk2 . uasset \" RoadTIntersection _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk3 . uasset \" RoadTIntersection _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk4 . uasset \" RoadTIntersection _ LaneMarking at \" Content / Static / RoadLines / St _ Road _ TCross _ LaneMarking . uasset \" RoadXIntersection _ Lane0 at \" Content / Static / Road / St _ Road _ XCross _ Road1 . uasset \" RoadXIntersection _ Lane1 at \" Content / Static / Road / St _ Road _ XCross _ Road2 . uasset \" RoadXIntersection _ Lane2 at \" Content / Static / Road / St _ Road _ XCross _ Road3 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road4 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road5 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road6 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road7 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road8 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road9 . uasset \" RoadXIntersection _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk1 . uasset \" RoadXIntersection _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk2 . uasset \" RoadXIntersection _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk3 . uasset \" RoadXIntersection _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk4 . uasset \" RoadXIntersection _ LaneMarking at \" Content / Static / RoadLines / St _ Road _ XCross _ LaneMarking . uasset \"","title":"\u5982\u4f55 \u6dfb\u52a0 \u8d44\u4ea7"},{"location":"how_to_add_assets/#_1","text":"\u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002","title":"\u5982\u4f55 \u6dfb\u52a0 \u8d44\u4ea7"},{"location":"how_to_add_assets/#_2","text":"\u6309\u7167 \u827a\u672f \u6307\u5357 \u521b\u5efa \u9aa8\u67b6 \u7f51\u683c \u4f53 \u548c \u7269\u7406 \u8d44\u4ea7 \u3002 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u53c2\u9605 \u8bf7\u53c2\u9605 \u8f66\u8f86 \u7528\u6237 \u6307\u5357 \u3002 \u5c06 fbx \u4f5c\u4e3a Skelletal Mesh \u5bfc\u5165 \u5bfc\u5165\u5230 \u5176 \u81ea\u5df1 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d Content / Static / Vehicles \u3002 \u7269\u7406 \u8d44\u4ea7 \u548c \u9aa8\u67b6 \u5e94 \u81ea\u52a8 \u521b\u5efa \uff0c \u5e76 \u5c06 \u4e09\u8005 \u94fe\u63a5 \u5728 \u4e00\u8d77 \u3002 \u8c03\u6574 \u7269\u7406 \u8d44\u4ea7 \u3002 \u5220\u9664 \u81ea\u52a8 \u521b\u5efa \u7684 \u8d44\u4ea7 \uff0c \u5e76 \u4e3a \u4e0e Vehicle _ Base \u5f62\u72b6 \u5339\u914d \u7684 \u9aa8\u9abc \u6dfb\u52a0 \u6846 \uff0c \u786e\u4fdd \u542f\u7528 \u4e86 \u751f\u6210 \u649e\u51fb \u4e8b\u4ef6 \u3002 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u6dfb\u52a0 \u4e00\u4e2a \u7403\u4f53 \uff0c \u5e76 \u5c06 \u5176 \u201c \u7269\u7406 \u7c7b\u578b \u201d \u8bbe\u7f6e \u4e3a \u201c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u201d \u3002 \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a \u201c \u52a8\u753b \u84dd\u56fe \u201d \uff0c \u521b\u5efa \u65f6 \u9009\u62e9 \u201c VehicleAnimInstance \u201d \u4f5c\u4e3a \u7236\u7c7b \uff0c \u5e76 \u4ee5\u6b64 \u6c7d\u8f66 \u8f66\u6a21 \u6a21\u578b \u6c7d\u8f66\u6a21\u578b \u7684 \u9aa8\u67b6 \u4f5c\u4e3a \u76ee\u6807 \u9aa8\u67b6 \u3002 \u6dfb\u52a0 \u52a8\u753b \u753b\u56fe \u52a8\u753b\u56fe \uff0c \u5982 \u4e0a\u9762 \u7ed9\u51fa \u7684 \u94fe\u63a5 \u6240\u793a \uff08 \u6216 \u5728 \u5176\u4ed6 \u6c7d\u8f66 \u7684 \u52a8\u753b \u4e2d \u67e5\u627e \uff0c \u5982 Mustang \uff09 \u3002 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Content / Blueprints / Vehicles / < vehicle - model > \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u521b\u5efa \u4e24\u4e2a \u4ece \u201c VehicleWheel \u201d \u7c7b \u6d3e\u751f \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u5b83\u4eec \u547d\u540d \u4e3a < vehicle - model > _ FrontWheel \u548c < vehicle - model > _ RearWheel \u3002 \u5c06 \u5b83\u4eec \u7684 \u201c \u5f62\u72b6 \u534a\u5f84 \u201d \u8bbe\u7f6e \u4e3a \u4e0e \u7f51\u683c \u8f6e \u534a\u5f84 \u5b8c\u5168 \u5339\u914d \uff08 \u6ce8\u610f \uff0c \u662f \u534a\u5f84 \u800c \u4e0d\u662f \u76f4\u5f84 \uff09 \u3002 \u5c06 \u5b83\u4eec \u7684 \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 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a \u84dd\u56fe \u7c7b \uff0c \u4ece\u4e2d \u6d3e \u751f\u51fa \u5e76 BaseVehiclePawn \u8c03\u7528 \u5b83 < vehicle - model > \u3002 \u6253\u5f00 \u5b83 \u8fdb\u884c \u7f16\u8f91 \u5e76 \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 \u7ec4\u4ef6 \u201c VehicleMovement \u201d \uff0c \u5728 \u201c Vehicle Setup \u201d \u4e0b \u5c55\u5f00 \u201c Wheel Setups \u201d \uff0c \u8bbe\u7f6e \u6bcf\u4e2a \u8f66\u8f6e 0 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ FrontWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Front _ Left 1 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ FrontWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Front _ Right 2 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ RearWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Rear _ Left 3 \uff1a \u8f6e\u5b50 \u7c7b\u522b = < vehicle - model > _ RearWheel \uff0c \u9aa8\u9abc \u540d\u79f0 = Wheel _ Rear _ Right \u5411 \u5176\u4e2d \u6dfb\u52a0 \u4e00\u4e2a \u540d\u4e3a \u201c Box \u201d \u7684 \u76d2\u5b50 \u7ec4\u4ef6 \uff08 \u53c2\u89c1 Mustang \u84dd\u56fe \uff09 \uff0c \u5e76 \u5c06 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u4ece \u4e0a\u65b9 \u8986\u76d6 \u8f66\u8f86 \u533a\u57df \u3002 \u786e\u4fdd \u8bbe\u7f6e \u4e86 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u9690\u85cf \u5728 \u6e38\u620f \u4e2d \u6a21\u62df \u7269\u7406 \u5df2 \u7981\u7528 \u7981\u7528 \u751f\u6210 \u91cd\u53e0 \u4e8b\u4ef6 \u78b0\u649e \u9884\u8bbe \u8bbe\u7f6e \u4e3a \u201c NoCollision \u201d \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 \u6c7d\u8f66 \u84dd\u56fe \u3002","title":"\u6dfb\u52a0 \u8f66\u8f86"},{"location":"how_to_add_assets/#_3","text":"\u5bf9\u4e8e \u9053\u8def \u751f\u6210 \uff0c \u9884\u8ba1 \u4f1a \u627e\u5230 \u4ee5\u4e0b \u7f51\u683c # Enum Filepath RoadTwoLanes _ LaneLeft at \" Content / Static / Road / St _ Road _ TileRoad _ RoadL . uasset \" RoadTwoLanes _ LaneRight at \" Content / Static / Road / St _ Road _ TileRoad _ RoadR . uasset \" RoadTwoLanes _ SidewalkLeft at \" Content / Static / SideWalk / St _ Road _ TileRoad _ SidewalkL . uasset \" RoadTwoLanes _ SidewalkRight at \" Content / Static / SideWalk / St _ Road _ TileRoad _ SidewalkR . uasset \" RoadTwoLanes _ LaneMarkingSolid at \" Content / Static / RoadLines / St _ Road _ TileRoad _ LaneMarkingSolid . uasset \" RoadTwoLanes _ LaneMarkingBroken at \" Content / Static / RoadLines / St _ Road _ TileRoad _ LaneMarkingBroken . uasset \" Road90DegTurn _ Lane0 at \" Content / Static / Road / St _ Road _ Curve _ Road1 . uasset \" Road90DegTurn _ Lane1 at \" Content / Static / Road / St _ Road _ Curve _ Road2 . uasset \" Road90DegTurn _ Lane2 at \" Content / Static / Road / St _ Road _ Curve _ Road3 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road4 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road5 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road6 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road7 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road8 . uasset \" Road90DegTurn _ Lane3 at \" Content / Static / Road / St _ Road _ Curve _ Road9 . uasset \" Road90DegTurn _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk1 . uasset \" Road90DegTurn _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk2 . uasset \" Road90DegTurn _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk3 . uasset \" Road90DegTurn _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ Curve _ Sidewalk4 . uasset \" Road90DegTurn _ LaneMarking at \" Content / Static / Road / St _ Road _ Curve _ LaneMarking . uasset \" RoadTIntersection _ Lane0 at \" Content / Static / Road / St _ Road _ TCross _ Road1 . uasset \" RoadTIntersection _ Lane1 at \" Content / Static / Road / St _ Road _ TCross _ Road2 . uasset \" RoadTIntersection _ Lane2 at \" Content / Static / Road / St _ Road _ TCross _ Road3 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road4 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road5 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road6 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road7 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road8 . uasset \" RoadTIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ TCross _ Road9 . uasset \" RoadTIntersection _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk1 . uasset \" RoadTIntersection _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk2 . uasset \" RoadTIntersection _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk3 . uasset \" RoadTIntersection _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ TCross _ Sidewalk4 . uasset \" RoadTIntersection _ LaneMarking at \" Content / Static / RoadLines / St _ Road _ TCross _ LaneMarking . uasset \" RoadXIntersection _ Lane0 at \" Content / Static / Road / St _ Road _ XCross _ Road1 . uasset \" RoadXIntersection _ Lane1 at \" Content / Static / Road / St _ Road _ XCross _ Road2 . uasset \" RoadXIntersection _ Lane2 at \" Content / Static / Road / St _ Road _ XCross _ Road3 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road4 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road5 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road6 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road7 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road8 . uasset \" RoadXIntersection _ Lane3 at \" Content / Static / Road / St _ Road _ XCross _ Road9 . uasset \" RoadXIntersection _ Sidewalk0 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk1 . uasset \" RoadXIntersection _ Sidewalk1 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk2 . uasset \" RoadXIntersection _ Sidewalk2 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk3 . uasset \" RoadXIntersection _ Sidewalk3 at \" Content / Static / SideWalk / St _ Road _ XCross _ Sidewalk4 . uasset \" RoadXIntersection _ LaneMarking at \" Content / Static / RoadLines / St _ Road _ XCross _ LaneMarking . uasset \"","title":"\u5730\u56fe \u751f\u6210"},{"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 \u521b\u5efa \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 \u521b\u5efa \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":"Large map import"},{"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 \u521b\u5efa \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":"\u521b\u5efa \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4e58 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 \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 \u4e58 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":"leaderboard/","text":"\u6982\u8ff0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u7684 \u4e3b\u8981 \u76ee\u6807 \u662f \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u4eba\u5458 \u9a7e\u9a76\u4eba\u5458 \u5728 \u73b0\u5b9e \u4ea4\u901a \u573a\u666f \u4e2d \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \u3002 \u6392\u884c \u6392\u884c\u699c \u4f5c\u4e3a \u793e\u533a \u7684 \u5f00\u653e \u5e73\u53f0 \u5f00\u653e\u5e73\u53f0 \uff0c \u5bf9 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u4ee3\u7406 \u8fdb\u884c \u516c\u5e73 \u4e14 \u53ef \u91cd\u590d \u7684 \u8bc4\u4f30 \uff0c \u7b80\u5316 \u4e86 \u4e0d\u540c \u65b9\u6cd5 \u4e4b\u95f4 \u7684 \u6bd4\u8f83 \u3002 \u6392\u884c \u6392\u884c\u699c \u76ee\u524d \u4e3a 2.0 \u7248\u672c \uff0c \u4ecd \u652f\u6301 1.0 \u7248\u672c \u3002 \u4efb\u52a1 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u8981\u6c42 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u9a7e\u9a76 \u901a\u8fc7 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u8def\u7ebf \u3002 \u5bf9\u4e8e \u6bcf\u6761 \u8def\u7ebf \uff0c \u4ee3\u7406 \u5c06 \u5728 \u8d77\u70b9 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \uff0c \u5e76 \u5f15\u5bfc \u5176 \u884c\u9a76 \u81f3 \u76ee\u7684 \u76ee\u7684\u5730 \u70b9 \uff0c \u5e76 \u901a\u8fc7 GPS \u6837\u5f0f \u5750\u6807 \u3001 \u5730\u56fe \u5750\u6807 \u6216 \u8def\u7ebf \u6307\u4ee4 \u63d0\u4f9b \u8def\u7ebf \u63cf\u8ff0 \u3002 \u8def\u7ebf \u662f \u5728 \u591a\u79cd \u60c5\u51b5 \u4e0b\u5b9a \u5b9a\u4e49 \u4e0b\u5b9a\u4e49 \u7684 \uff0c \u5305\u62ec \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u57ce\u5e02 \u5730\u533a \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u6392\u884c \u6392\u884c\u699c \u8bc4\u4f30 \u5404\u79cd \u5929\u6c14 \u6761\u4ef6 \u4e0b \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \uff0c \u5305\u62ec \u65e5\u5149 \u573a\u666f \u3001 \u65e5\u843d \u3001 \u96e8 \u3001 \u96fe \u548c \u591c\u665a \u7b49 \u3002 \u5e94\u7528 \u573a\u666f \u4ee3\u7406 \u5c06 \u9762\u4e34 \u57fa\u4e8e NHTSA \u7c7b\u578b \u7684 \u591a\u79cd \u4ea4\u901a \u573a\u666f \u3002 \u53ef\u4ee5 \u5728 \u6b64 \u9875\u9762 \u4e2d \u67e5\u770b \u4ea4\u901a \u573a\u666f \u7684 \u5b8c\u6574 \u5217\u8868 \uff0c \u4f46 \u8fd9\u91cc \u6709 \u4e00\u4e9b \u793a\u4f8b \u3002 \u8f66\u9053 \u5408\u5e76 \u3002 \u53d8\u9053 \u3002 \u5728 \u4ea4\u901a \u8def\u53e3 \u8fdb\u884c \u534f\u5546 \u3002 \u5728 \u73af\u5c9b \u8fdb\u884c \u534f\u5546 \u3002 \u5904\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 \u7ed9 \u7d27\u6025 \u8f66\u8f86 \u8ba9 \u884c \u3002 \u5e94\u5bf9 \u884c\u4eba \u3001 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u548c \u5176\u4ed6 \u56e0\u7d20 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e2d \u7684 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u56fe\u89e3 \u3002 \u53c2\u4e0e \u65b9\u5f0f \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u4e24\u79cd \u53c2\u4e0e \u65b9\u5f0f \uff1a SENSORS \u548c MAP \u3002 \u8fd9\u4e9b \u65b9\u5f0f \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \u60a8 \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u4ece \u5e73\u53f0 \u8bf7\u6c42 \u7684 \u8f93\u5165 \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u4e24\u79cd \u6a21\u5f0f \u7684 \u4ee3\u7406 \u90fd \u5c06 \u6536\u5230 \u9ad8\u7ea7 \u8def\u7ebf \u63cf\u8ff0 \uff0c \u6307\u793a \u8def\u5f84 \u5fc5\u987b \u9075\u5faa \u7684 \u5173\u952e \u5173\u952e\u70b9 \u624d\u80fd \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u8be5 \u8def\u7ebf \u8868\u793a \u4e3a \u5143\u7ec4 \u5217\u8868 \uff0c \u5e76\u4e14 \u6709 \u4e24\u79cd \u53d8\u4f53 \u3002 \u5bf9\u4e8e \u7b2c\u4e00 \u4e00\u79cd \u7b2c\u4e00\u79cd \u60c5\u51b5 \uff0c \u5143\u7ec4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u5305\u542b \u4e00\u4e2a \u8def\u5f84 \u70b9 \uff0c \u8868\u793a \u4e3a \u7eac\u5ea6 \u3001 \u7ecf\u5ea6 \u548c \u5206\u91cf z \u3002 [ ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002271601998707 } , RoadOption . LEFT ) , ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002709765148996 } , RoadOption . RIGHT ) , ... ( { ' z ' : 0.0 , ' lat ' : 48.99822679980298 , ' lon ' : 8.002735250105061 } , RoadOption . STRAIGHT ) ] \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u60c5\u51b5 \u4e0e \u524d \u4e00\u79cd \u60c5\u51b5 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u4f7f\u7528 GPS \u5750\u6807 \uff0c \u800c\u662f \u7528 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8868\u793a \u8def\u7ebf \u3002 [ ( { ' x ' : 153.7 , ' y ' : 15.6 , ' z ' : 0.0 } , RoadOption . LEFT ) , ( { ' x ' : 148.9 , ' y ' : 67.8 , ' z ' : 0.0 } , RoadOption . RIGHT ) , ... ( { ' x ' : 180.7 , ' y ' : 45.1 , ' z ' : 1.2 } , RoadOption . STRAIGHT ) ] \u7b14\u8bb0 \u4e24\u4e2a \u8fde\u7eed \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u53ef\u80fd \u957f \u8fbe \u6570\u767e \u767e\u7c73 \u6570\u767e\u7c73 \u3002 \u4e0d\u8981 \u4f9d\u8d56 \u8fd9\u4e9b \u4f5c\u4e3a \u60a8 \u9a7e\u9a6d \u73af\u5883 \u7684 \u4e3b\u8981 \u673a\u5236 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u5305\u542b \u9ad8\u7ea7 \u547d\u4ee4 \u3002 \u53ef\u7528 \u7684 \u9ad8\u7ea7 \u547d\u4ee4 \u547d\u4ee4\u96c6 \u662f \uff1a RoadOption . CHANGELANELEFT \uff1a \u5411 \u5de6 \u79fb\u52a8 \u4e00\u6761 \u8f66\u9053 \u3002 RoadOption . CHANGELANERIGHT \uff1a \u5411 \u53f3 \u79fb\u52a8 \u4e00\u6761 \u8f66\u9053 \u3002 RoadOption . LANEFOLLOW \uff1a \u7ee7\u7eed \u5728 \u5f53\u524d \u8f66\u9053 \u4e0a \u884c\u9a76 \u3002 RoadOption . LEFT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5de6\u8f6c \u3002 RoadOption . RIGHT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u53f3\u8f6c \u3002 RoadOption . STRAIGHT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u4fdd\u6301 \u76f4\u884c \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u5f97 \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u7684 \u4efb\u4f55 \u7279\u6743 \u4fe1\u606f \uff0c \u5305\u62ec \u89c4\u5212 \u5668 \u6216 \u4efb\u4f55 \u7c7b\u578b \u7684 \u57fa\u672c \u4e8b\u5b9e \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u529f\u80fd \u7684 \u63d0\u4ea4 \u5c06 \u88ab \u62d2\u7edd \uff0c \u56e2\u961f \u5c06 \u88ab \u7981\u6b62 \u8fdb\u5165 \u8be5 \u5e73\u53f0 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f68\u8ff9 \u5728 \u6b64 \u8f68\u8ff9 \u4e0a \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8bf7\u6c42 \u8bbf\u95ee \u4ee5\u4e0b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u7b14\u8bb0 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5355\u4f4d \u90fd \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \uff0c \u4ee5 \u63a7\u5236 \u8ba1\u7b97 \u9884\u7b97 \u3002 \u5730\u56fe \u8f68\u8ff9 \u63d0\u4f9b \u4e0e SENSORS \u8f68\u8ff9 \u76f8\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7ec4 \u3002 \u6b64\u5916 \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8bf7\u6c42 \u8bbf\u95ee \u9ad8\u7cbe \u5730\u56fe \uff0c \u8be5 \u5730\u56fe \u4ee5 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u5f62\u5f0f \u63d0\u4f9b \u3002 \u7b14\u8bb0 \u60a8 \u5b8c\u5168 \u8d1f\u8d23 \u89e3\u6790 \u6b64 \u6587\u4ef6 \u6216 \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u5bf9 \u60a8 \u7684 \u4ee3\u7406 \u6709\u7528 \u7684 \u8868\u793a \u5f62\u5f0f \u3002 \u8d44\u683c \u8d44\u683c\u8d5b \u8d5b\u9053 \u6392\u884c \u6392\u884c\u699c 2.0 \u8bbe\u6709 2 \u6761 \u8d44\u683c \u8d44\u683c\u8d5b \u8d5b\u9053 \uff0c \u60a8 \u7684 \u4ee3\u7406 \u5c06 \u9700\u8981 \u901a\u8fc7 \u5177\u6709 \u7b80\u5355 \u9a7e\u9a76 \u573a\u666f \u7684 \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u7684 \u5730\u56fe \u5b89\u5168 \u5730 \u5bfc\u822a \u4e00\u6761 \u7b80\u5355 \u7684 \u8def\u7ebf \u3002 \u6bcf\u4e2a SENSOR \u548c MAP \u8f68\u9053 \u90fd \u6709 \u5176 \u5404\u81ea \u7684 \u9650\u5b9a \u9650\u5b9a\u7b26 \u3002 \u60a8 \u5fc5\u987b \u5728 \u9884\u9009 \u9884\u9009\u8d5b \u4e2d \u8fbe\u5230 \u6700\u4f4e \u9a7e\u9a76 \u5206\u6570 \uff0c \u624d\u80fd \u5141\u8bb8 \u5411 \u6392\u884c \u6392\u884c\u699c 2.0 \u4e3b \u8d5b\u9053 \u63d0\u4ea4 \u4ee3\u7406 \u3002 \u4e3a\u4e86 \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \uff0c \u9884\u9009 \u9884\u9009\u8d5b \u5c06 \u5141\u8bb8 \u4f7f\u7528 \u6bd4 \u4e3b\u8981 \u7ade\u4e89 \u5bf9\u624b \u7ade\u4e89\u5bf9\u624b \u66f4 \u4e25\u683c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5957\u4ef6 \uff0c \u5305\u62ec 0 - 4 \u4e2a RGB \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3001 0 - 2 \u4e2a \u96f7\u8fbe \u548c 0 - 1 \u4e2a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u4ee5\u53ca \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 IMU \u548c \u901f\u5ea6 \u901f\u5ea6\u8ba1 \uff08 \u4ee5\u53ca \u7528\u4e8e MAP \u8d5b\u9053 \u7684 OpenDRIVE \uff09 \u3002 \u6211\u4eec \u9f13\u52b1 \u60a8 \u4f7f\u7528 \u9650\u5b9a \u9650\u5b9a\u7b26 \u6765 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u5df2 \u6b63\u786e \u914d\u7f6e \u5e76 \u5728 \u6392\u884c \u6392\u884c\u699c \u4e0a \u6b63\u5e38 \u8fd0\u884c \u3002 \u8bc4\u4f30 \u548c \u6307\u6807 \u4ee3\u7406 \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \u53ef\u4ee5 \u901a\u8fc7 \u591a\u79cd \u6307\u6807 \u6765 \u8868\u5f81 \u3002 \u5bf9\u4e8e \u8fd9\u4e2a \u6392\u884c \u6392\u884c\u699c \uff0c \u6211\u4eec \u9009\u62e9 \u4e86 \u4e00\u7ec4 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u9a7e\u9a76 \u4e0d\u540c \u65b9\u9762 \u7684 \u6307\u6807 \u3002 \u867d\u7136 \u6240\u6709 \u8def\u7531 \u90fd \u5177\u6709 \u76f8\u540c \u7c7b\u578b \u7684 \u6307\u6807 \uff0c \u4f46 \u5b83\u4eec \u5404\u81ea \u7684 \u503c \u662f \u5355\u72ec \u8ba1\u7b97 \u7684 \u3002 \u5177\u4f53 \u6307\u6807 \u5982\u4e0b \uff1a \u9a7e\u9a76 \u5206\u6570 \uff1a ( { R _ i P _ i } , ) \u2014 \u6392\u884c \u6392\u884c\u699c \u7684 \u4e3b\u8981 \u6307\u6807 \uff0c \u4f5c\u4e3a \u8def\u7ebf \u5b8c\u6210 \u4e0e \u8fdd\u89c4 \u5904\u7f5a \u4e4b\u95f4 \u7684 \u4e58\u79ef \u3002 \u8fd9\u91cc ( Ri ) \u662f ( i \u2212 th ) \u8def\u7ebf \u7684 \u5b8c\u6210 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u800c ( Pi ) \u662f ( i \u2212 th ) \u8def\u7ebf \u7684 \u8fdd\u89c4 \u5904\u7f5a \u3002 \u8def\u7ebf \u5b8c\u6210 \uff1a \u5ba2\u670d \u4eba\u5458 \u5b8c\u6210 \u7684 \u8def\u7ebf \u8ddd\u79bb \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8fdd\u89c4 \u5904\u7f5a : ( \\ prod _ j ^ { \\ text { ped . , ... , stop } } ( { p _ i ^ j } ) ^ { \\ text { # infractions } _ j } . ) \u2014 \u6392\u884c \u6392\u884c\u699c \u8ddf\u8e2a \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u8be5 \u6307\u6807 \u5c06 \u4ee3\u7406 \u89e6\u53d1 \u7684 \u6240\u6709 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u6c47\u603b \u4e3a \u51e0\u4f55 \u7ea7\u6570 \u51e0\u4f55\u7ea7\u6570 \u3002 \u4ee3\u7406 \u7684 \u7406\u60f3 \u57fa\u7840 \u5206\u6570 \u662f 1.0 \uff0c \u6bcf \u72af\u4e0b \u4e00\u79cd \u7c7b\u578b \u7684 \u8fdd\u89c4 \uff0c \u8be5 \u5206\u6570 \u90fd \u4f1a \u964d\u4f4e \u3002 \u5f53 \u6240\u6709 \u8def\u7531 \u5b8c\u6210 \u540e \uff0c \u8fd8\u4f1a \u751f\u6210 \u524d \u4e09\u79cd \u7c7b\u578b \u4e2d \u6bcf \u4e00\u79cd \u7684 \u5168\u5c40 \u5ea6\u91cf \uff0c \u5373 \u6240\u6709 \u5355\u72ec \u8def\u7531 \u7ec4\u5408 \u7684 \u7b97\u672f \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u3002 \u5168\u5c40 \u9a7e\u9a76 \u5206\u6570 \u662f \u5bf9 \u60a8 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fdb\u884c \u5206\u7c7b \u7684 \u4e3b\u8981 \u6307\u6807 \u3002 \u8fdd\u89c4 \u548c \u5173\u95ed \u4e8b\u4ef6 Carla \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u7684 \u5355\u72ec \u6307\u6807 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u6709 \u4e00\u4e2a \u60e9\u7f5a \u7cfb\u6570 \uff0c \u6bcf\u6b21 \u53d1\u751f \u65f6 \u90fd \u4f1a \u5e94\u7528 \u8be5 \u7cfb\u6570 \u3002 \u6309 \u4e25\u91cd \u7a0b\u5ea6 \u6392\u5e8f \uff0c \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u5982\u4e0b \u3002 \u4e0e \u884c\u4eba \u76f8\u649e \u2014 0.50 . \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u2014 0.60 . \u4e0e \u9759\u6001 \u5143\u7d20 \u7684 \u78b0\u649e - 0.65 . \u7ea2\u706f \u95ef\u7ea2\u706f \u2014 \u2014 0.70 \u3002 \u8fd0\u884c \u505c\u8f66 \u6807\u5fd7 \u2014 0.80 . \u67d0\u4e9b \u573a\u666f \u7684 \u884c\u4e3a \u53ef\u4ee5 \u65e0\u9650 \u9650\u671f \u65e0\u9650\u671f \u5730 \u963b\u6b62 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u573a\u666f \u5c06 \u6709 4 \u5206\u949f \u7684 \u8d85\u65f6 \u65f6\u95f4 \uff0c \u4e4b\u540e \u81ea\u52a8 \u8f66\u8f86 \u5c06 \u88ab \u91ca\u653e \u4ee5 \u7ee7\u7eed \u8def\u7ebf \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8d85\u8fc7 \u65f6\u9650 \uff0c \u5219 \u4f1a \u53d7\u5230 \u5904\u7f5a \uff1a \u573a\u666f \u8d85\u65f6 \u2014 0.7 \u9884\u8ba1 \u4ee3\u7406 \u5c06 \u4fdd\u6301 \u6700\u4f4e \u901f\u5ea6 \u4ee5 \u9002\u5e94 \u9644\u8fd1 \u7684 \u4ea4\u901a \u3002 \u4ee3\u7406 \u7684 \u901f\u5ea6 \u5c06 \u4e0e \u9644\u8fd1 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u8fdb\u884c \u6bd4\u8f83 \u3002 \u672a\u80fd \u4fdd\u6301 \u9002\u5f53 \u7684 \u901f\u5ea6 \u5c06 \u53d7\u5230 \u5904\u7f5a \u3002 \u6240 \u65bd\u52a0 \u7684 \u60e9\u7f5a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u901f\u5ea6 \u5dee \u7684 \u5927\u5c0f \uff0c \u6700\u9ad8 \u53ef \u8fbe \u4ee5\u4e0b \u503c \uff1a \u672a\u80fd \u4fdd\u6301 \u6700\u4f4e \u901f\u5ea6 \u2014 0.7 \u7279\u5de5 \u5e94\u8be5 \u7ed9 \u4ece \u540e\u9762 \u9a76\u6765 \u7684 \u7d27\u6025 \u8f66\u8f86 \u8ba9\u8def \u3002 \u4e0d\u8ba9 \u7d27\u6025 \u8f66\u8f86 \u901a\u8fc7 \u5c06 \u53d7\u5230 \u5904\u7f5a \uff1a \u672a\u80fd \u7ed9 \u7d27\u6025 \u8f66\u8f86 \u8ba9\u8def \u2014 0.7 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u8fd8\u6709 \u4e00\u79cd \u989d\u5916 \u7684 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \uff0c \u5b83 \u6ca1\u6709 \u7cfb\u6570 \uff0c \u800c\u662f \u5f71\u54cd \u8def\u7ebf \u5b8c\u6210 \uff08 ( R _ i ) \uff09 \u7684 \u8ba1\u7b97 \u3002 \u8d8a\u91ce \u9a7e\u9a76 - \u5982\u679c \u4ee3\u7406 \u9a7e\u9a76 \u8d8a\u91ce \uff0c \u5219 \u5728 \u8ba1\u7b97 \u8def\u7ebf \u5b8c\u6210 \u5206\u6570 \u65f6 \u5c06 \u4e0d\u4f1a \u8003\u8651 \u8be5 \u8def\u7ebf \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u6b64\u5916 \uff0c \u67d0\u4e9b \u4e8b\u4ef6 \u4f1a \u4e2d\u65ad \u4eff\u771f \uff0c \u4ece\u800c \u963b\u6b62 \u4ee3\u7406 \u7ee7\u7eed \u8fdb\u884c \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6b63\u5728 \u4eff\u771f \u7684 \u8def\u7ebf \u5c06 \u88ab \u5173\u95ed \uff0c \u6392\u884c \u6392\u884c\u699c \u5c06 \u79fb\u81f3 \u4e0b \u4e00\u6761 \uff0c \u6b63\u5e38 \u89e6\u53d1 \u3002 \u8def\u7ebf \u504f\u5dee 30 - \u5982\u679c \u5ba2\u670d \u4eba\u5458 \u504f\u79bb \u6307\u5b9a \u8def\u7ebf \u8d85\u8fc7 \u7c73 \u3002 \u4ee3\u7406 \u88ab \u963b\u6b62 180 \u2014 \u5982\u679c \u4ee3\u7406 \u5728 \u4eff\u771f \u79d2 \u5185 \u6ca1\u6709 \u91c7\u53d6 \u4efb\u4f55 \u91c7\u53d6\u4efb\u4f55 \u64cd\u4f5c \u3002 \u4eff\u771f \u8d85\u65f6 \u2014 \u2014 \u5982\u679c \u5728 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5185 \u65e0\u6cd5 \u5efa\u7acb \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 60 \u3002 \u8def\u7ebf \u8d85\u65f6 - \u5982\u679c \u8def\u7ebf \u4eff\u771f \u82b1\u8d39 \u592a \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u6bcf\u6b21 \u53d1\u751f \u4e0a\u8ff0 \u4efb\u4f55 \u60c5\u51b5 \u65f6 \uff0c \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8fd9\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u5c06 \u663e\u793a \u4e3a \u5217\u8868 \uff0c \u4f9b \u60a8 \u67e5\u770b \u8def\u7ebf \u7684 \u5404\u4e2a \u6307\u6807 \u3002 \u4ee5\u4e0b \u662f \u4ee3\u7406 \u7ea2\u706f \u95ef\u7ea2\u706f \u5e76 \u504f\u79bb \u8def\u7ebf \u7684 \u8def\u7ebf \u793a\u4f8b \u3002 \" infractions \" : { \" Collisions with layout \" : [ ] , \" Collisions with pedestrians \" : [ ] , \" Collisions with vehicles \" : [ ] , \" Red lights infractions \" : [ \" Agent ran a red light 203 at ( x = 341.25 , y = 209.1 , z = 0.104 ) \" ] , \" Stop sign infractions \" : [ ] , \" Off - road infractions \" : [ ] , \" Min speed infractions \" : [ ] , \" Yield to emergency vehicle infractions \" : [ ] , \" Scenario timeouts \" : [ ] , \" Route deviations \" : [ \" Agent deviated from the route at ( x = 95.92 , y = 165.673 , z = 0.138 ) \" ] , \" Agent blocked \" : [ ] , \" Route timeouts \" : [ ] } \u7b14\u8bb0 \u5168\u5c40 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u5c06 \u5404\u4e2a \u8def\u7ebf \u7684 \u6570\u636e \u538b\u7f29 \u6570\u636e\u538b\u7f29 \u4e3a \u5355\u4e2a \u503c \uff0c \u5e76 \u4ee5 \u6bcf \u516c\u91cc \u7684 \u4e8b\u4ef6 \u6570 \u7ed9\u51fa \u3002 \u5f00\u59cb \u4f7f\u7528 \u4e3a\u4e86 \u719f\u6089 \u6392\u884c \u6392\u884c\u699c \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u4ed4\u7ec6 \u9605\u8bfb \u4ed4\u7ec6\u9605\u8bfb \u201c \u5165\u95e8 \u201d \u90e8\u5206 \u3002 \u8bf7\u82b1 \u8db3\u591f \u7684 \u65f6\u95f4 \u786e\u4fdd \u4e00\u5207 \u5728 \u672c\u5730 \u6309 \u9884\u671f \u8fd0\u884c \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u8bf7 \u68c0\u67e5 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u51c6\u5907 \u63d0\u4ea4 \u3002 \u6392\u884c \u6392\u884c\u699c 1.0 \u6392\u884c \u6392\u884c\u699c \u76ee\u524d \u4e3a 2.0 \u7248\u672c \u3002 \u6392\u884c \u6392\u884c\u699c 1.0 \u7248 \u4ecd\u7136 \u53ef\u4ee5 \u652f\u6301 \u60a8 \u4e4b\u524d \u7684 \u5de5\u4f5c \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u201c \u5f00\u59cb \u201d \u548c \u201c \u63d0\u4ea4 \u201d \u9875\u9762 \u4ee5 \u83b7\u53d6 \u6392\u884c \u6392\u884c\u699c 1.0 \u7248\u672c \u7684 \u63d0\u4ea4 \u4fe1\u606f \u3002 \u6761\u6b3e \u548c \u6761\u4ef6 \u611f\u8c22 \u6211\u4eec \u7684 \u8d5e\u52a9 \u8d5e\u52a9\u5546 \u548c \u5408\u4f5c \u4f5c\u8005 \u5408\u4f5c\u8005 \u7684 \u6177\u6168 \u89e3\u56ca \u6177\u6168\u89e3\u56ca \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4f5c\u4e3a \u4e00\u9879 \u5411 \u7814\u7a76 \u754c \u63d0\u4f9b \u7684 \u670d\u52a1 \u514d\u8d39 \u63d0\u4f9b \u3002 \u6bcf\u4e2a \u63d0\u4ea4 \u90fd \u5c06 \u5728 AWS \u4e2d \u4f7f\u7528 g5.12 xlarge \u5b9e\u4f8b \u8fdb\u884c \u8bc4\u4f30 \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u8bbf\u95ee \u5177\u6709 \u73b0\u4ee3 GPU \u548c CPU \u7684 \u4e13\u7528 \u8282\u70b9 \u3002 \u6bcf\u4e2a \u6708 \u5411 \u56e2\u961f \u63d0\u4ea4 \u7684 \u63d0\u4ea4 \u6570\u91cf \u6709\u9650 \uff08 \u76ee\u524d \u4e3a 5 \u4efd \uff09 \u3002 \u63d0\u4ea4 \u6d25\u8d34 \u6bcf\u6708 \u81ea\u52a8 \u8865\u5145 \u3002 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u7ec4\u7ec7 \u7ec4\u7ec7\u8005 \u4fdd\u7559 \u5411 \u56e2\u961f \u5206\u914d \u989d\u5916 \u6d25\u8d34 \u7684 \u6743\u5229 \u3002 \u8be5 \u7ec4\u7ec7 \u8fd8 \u4fdd\u7559 \u4fee\u6539 \u6bcf\u6708 \u63d0\u4ea4 \u6d25\u8d34 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u7684 \u6743\u5229 \u3002 \u4e25\u683c \u7981\u6b62 \u6ee5\u7528 \u6216 \u653b\u51fb Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \uff0c \u5305\u62ec \u7528\u4e8e \u8fd0\u884c \u670d\u52a1 \u7684 \u6240\u6709 \u8f6f\u4ef6 \u548c \u786c\u4ef6 \u3002 \u504f\u79bb Carla \u6392\u884c \u6392\u884c\u699c \u7cbe\u795e \u7684 \u884c\u4e3a \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u56e2\u961f \u89e3\u6563 \u3002 \u5982\u9700 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8bf4\u660e \uff0c \u8bf7 \u9605\u8bfb \u6761\u6b3e \u548c \u6761\u4ef6 \u3002 \u6027\u80fd \u6392\u884c \u6392\u884c\u699c","title":"\u6982\u8ff0"},{"location":"leaderboard/#_1","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u7684 \u4e3b\u8981 \u76ee\u6807 \u662f \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u4eba\u5458 \u9a7e\u9a76\u4eba\u5458 \u5728 \u73b0\u5b9e \u4ea4\u901a \u573a\u666f \u4e2d \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \u3002 \u6392\u884c \u6392\u884c\u699c \u4f5c\u4e3a \u793e\u533a \u7684 \u5f00\u653e \u5e73\u53f0 \u5f00\u653e\u5e73\u53f0 \uff0c \u5bf9 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u4ee3\u7406 \u8fdb\u884c \u516c\u5e73 \u4e14 \u53ef \u91cd\u590d \u7684 \u8bc4\u4f30 \uff0c \u7b80\u5316 \u4e86 \u4e0d\u540c \u65b9\u6cd5 \u4e4b\u95f4 \u7684 \u6bd4\u8f83 \u3002 \u6392\u884c \u6392\u884c\u699c \u76ee\u524d \u4e3a 2.0 \u7248\u672c \uff0c \u4ecd \u652f\u6301 1.0 \u7248\u672c \u3002","title":"\u6982\u8ff0"},{"location":"leaderboard/#_2","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u8981\u6c42 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u9a7e\u9a76 \u901a\u8fc7 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u8def\u7ebf \u3002 \u5bf9\u4e8e \u6bcf\u6761 \u8def\u7ebf \uff0c \u4ee3\u7406 \u5c06 \u5728 \u8d77\u70b9 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \uff0c \u5e76 \u5f15\u5bfc \u5176 \u884c\u9a76 \u81f3 \u76ee\u7684 \u76ee\u7684\u5730 \u70b9 \uff0c \u5e76 \u901a\u8fc7 GPS \u6837\u5f0f \u5750\u6807 \u3001 \u5730\u56fe \u5750\u6807 \u6216 \u8def\u7ebf \u6307\u4ee4 \u63d0\u4f9b \u8def\u7ebf \u63cf\u8ff0 \u3002 \u8def\u7ebf \u662f \u5728 \u591a\u79cd \u60c5\u51b5 \u4e0b\u5b9a \u5b9a\u4e49 \u4e0b\u5b9a\u4e49 \u7684 \uff0c \u5305\u62ec \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u57ce\u5e02 \u5730\u533a \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u6392\u884c \u6392\u884c\u699c \u8bc4\u4f30 \u5404\u79cd \u5929\u6c14 \u6761\u4ef6 \u4e0b \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \uff0c \u5305\u62ec \u65e5\u5149 \u573a\u666f \u3001 \u65e5\u843d \u3001 \u96e8 \u3001 \u96fe \u548c \u591c\u665a \u7b49 \u3002","title":"\u4efb\u52a1"},{"location":"leaderboard/#_3","text":"\u4ee3\u7406 \u5c06 \u9762\u4e34 \u57fa\u4e8e NHTSA \u7c7b\u578b \u7684 \u591a\u79cd \u4ea4\u901a \u573a\u666f \u3002 \u53ef\u4ee5 \u5728 \u6b64 \u9875\u9762 \u4e2d \u67e5\u770b \u4ea4\u901a \u573a\u666f \u7684 \u5b8c\u6574 \u5217\u8868 \uff0c \u4f46 \u8fd9\u91cc \u6709 \u4e00\u4e9b \u793a\u4f8b \u3002 \u8f66\u9053 \u5408\u5e76 \u3002 \u53d8\u9053 \u3002 \u5728 \u4ea4\u901a \u8def\u53e3 \u8fdb\u884c \u534f\u5546 \u3002 \u5728 \u73af\u5c9b \u8fdb\u884c \u534f\u5546 \u3002 \u5904\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 \u7ed9 \u7d27\u6025 \u8f66\u8f86 \u8ba9 \u884c \u3002 \u5e94\u5bf9 \u884c\u4eba \u3001 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u548c \u5176\u4ed6 \u56e0\u7d20 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e2d \u7684 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u56fe\u89e3 \u3002","title":"\u5e94\u7528 \u573a\u666f"},{"location":"leaderboard/#_4","text":"\u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u4e24\u79cd \u53c2\u4e0e \u65b9\u5f0f \uff1a SENSORS \u548c MAP \u3002 \u8fd9\u4e9b \u65b9\u5f0f \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \u60a8 \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u4ece \u5e73\u53f0 \u8bf7\u6c42 \u7684 \u8f93\u5165 \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u4e24\u79cd \u6a21\u5f0f \u7684 \u4ee3\u7406 \u90fd \u5c06 \u6536\u5230 \u9ad8\u7ea7 \u8def\u7ebf \u63cf\u8ff0 \uff0c \u6307\u793a \u8def\u5f84 \u5fc5\u987b \u9075\u5faa \u7684 \u5173\u952e \u5173\u952e\u70b9 \u624d\u80fd \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u8be5 \u8def\u7ebf \u8868\u793a \u4e3a \u5143\u7ec4 \u5217\u8868 \uff0c \u5e76\u4e14 \u6709 \u4e24\u79cd \u53d8\u4f53 \u3002 \u5bf9\u4e8e \u7b2c\u4e00 \u4e00\u79cd \u7b2c\u4e00\u79cd \u60c5\u51b5 \uff0c \u5143\u7ec4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u5305\u542b \u4e00\u4e2a \u8def\u5f84 \u70b9 \uff0c \u8868\u793a \u4e3a \u7eac\u5ea6 \u3001 \u7ecf\u5ea6 \u548c \u5206\u91cf z \u3002 [ ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002271601998707 } , RoadOption . LEFT ) , ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002709765148996 } , RoadOption . RIGHT ) , ... ( { ' z ' : 0.0 , ' lat ' : 48.99822679980298 , ' lon ' : 8.002735250105061 } , RoadOption . STRAIGHT ) ] \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u60c5\u51b5 \u4e0e \u524d \u4e00\u79cd \u60c5\u51b5 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u4f7f\u7528 GPS \u5750\u6807 \uff0c \u800c\u662f \u7528 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8868\u793a \u8def\u7ebf \u3002 [ ( { ' x ' : 153.7 , ' y ' : 15.6 , ' z ' : 0.0 } , RoadOption . LEFT ) , ( { ' x ' : 148.9 , ' y ' : 67.8 , ' z ' : 0.0 } , RoadOption . RIGHT ) , ... ( { ' x ' : 180.7 , ' y ' : 45.1 , ' z ' : 1.2 } , RoadOption . STRAIGHT ) ] \u7b14\u8bb0 \u4e24\u4e2a \u8fde\u7eed \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u53ef\u80fd \u957f \u8fbe \u6570\u767e \u767e\u7c73 \u6570\u767e\u7c73 \u3002 \u4e0d\u8981 \u4f9d\u8d56 \u8fd9\u4e9b \u4f5c\u4e3a \u60a8 \u9a7e\u9a6d \u73af\u5883 \u7684 \u4e3b\u8981 \u673a\u5236 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u5305\u542b \u9ad8\u7ea7 \u547d\u4ee4 \u3002 \u53ef\u7528 \u7684 \u9ad8\u7ea7 \u547d\u4ee4 \u547d\u4ee4\u96c6 \u662f \uff1a RoadOption . CHANGELANELEFT \uff1a \u5411 \u5de6 \u79fb\u52a8 \u4e00\u6761 \u8f66\u9053 \u3002 RoadOption . CHANGELANERIGHT \uff1a \u5411 \u53f3 \u79fb\u52a8 \u4e00\u6761 \u8f66\u9053 \u3002 RoadOption . LANEFOLLOW \uff1a \u7ee7\u7eed \u5728 \u5f53\u524d \u8f66\u9053 \u4e0a \u884c\u9a76 \u3002 RoadOption . LEFT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5de6\u8f6c \u3002 RoadOption . RIGHT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u53f3\u8f6c \u3002 RoadOption . STRAIGHT \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u4fdd\u6301 \u76f4\u884c \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u5f97 \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u7684 \u4efb\u4f55 \u7279\u6743 \u4fe1\u606f \uff0c \u5305\u62ec \u89c4\u5212 \u5668 \u6216 \u4efb\u4f55 \u7c7b\u578b \u7684 \u57fa\u672c \u4e8b\u5b9e \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u529f\u80fd \u7684 \u63d0\u4ea4 \u5c06 \u88ab \u62d2\u7edd \uff0c \u56e2\u961f \u5c06 \u88ab \u7981\u6b62 \u8fdb\u5165 \u8be5 \u5e73\u53f0 \u3002","title":"\u53c2\u4e0e \u65b9\u5f0f"},{"location":"leaderboard/#_5","text":"\u5728 \u6b64 \u8f68\u8ff9 \u4e0a \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8bf7\u6c42 \u8bbf\u95ee \u4ee5\u4e0b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u7b14\u8bb0 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5355\u4f4d \u90fd \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \uff0c \u4ee5 \u63a7\u5236 \u8ba1\u7b97 \u9884\u7b97 \u3002","title":"\u4f20\u611f\u5668 \u8f68\u8ff9"},{"location":"leaderboard/#_6","text":"\u63d0\u4f9b \u4e0e SENSORS \u8f68\u8ff9 \u76f8\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7ec4 \u3002 \u6b64\u5916 \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8bf7\u6c42 \u8bbf\u95ee \u9ad8\u7cbe \u5730\u56fe \uff0c \u8be5 \u5730\u56fe \u4ee5 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u5f62\u5f0f \u63d0\u4f9b \u3002 \u7b14\u8bb0 \u60a8 \u5b8c\u5168 \u8d1f\u8d23 \u89e3\u6790 \u6b64 \u6587\u4ef6 \u6216 \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u5bf9 \u60a8 \u7684 \u4ee3\u7406 \u6709\u7528 \u7684 \u8868\u793a \u5f62\u5f0f \u3002","title":"\u5730\u56fe \u8f68\u8ff9"},{"location":"leaderboard/#_7","text":"\u6392\u884c \u6392\u884c\u699c 2.0 \u8bbe\u6709 2 \u6761 \u8d44\u683c \u8d44\u683c\u8d5b \u8d5b\u9053 \uff0c \u60a8 \u7684 \u4ee3\u7406 \u5c06 \u9700\u8981 \u901a\u8fc7 \u5177\u6709 \u7b80\u5355 \u9a7e\u9a76 \u573a\u666f \u7684 \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u7684 \u5730\u56fe \u5b89\u5168 \u5730 \u5bfc\u822a \u4e00\u6761 \u7b80\u5355 \u7684 \u8def\u7ebf \u3002 \u6bcf\u4e2a SENSOR \u548c MAP \u8f68\u9053 \u90fd \u6709 \u5176 \u5404\u81ea \u7684 \u9650\u5b9a \u9650\u5b9a\u7b26 \u3002 \u60a8 \u5fc5\u987b \u5728 \u9884\u9009 \u9884\u9009\u8d5b \u4e2d \u8fbe\u5230 \u6700\u4f4e \u9a7e\u9a76 \u5206\u6570 \uff0c \u624d\u80fd \u5141\u8bb8 \u5411 \u6392\u884c \u6392\u884c\u699c 2.0 \u4e3b \u8d5b\u9053 \u63d0\u4ea4 \u4ee3\u7406 \u3002 \u4e3a\u4e86 \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \uff0c \u9884\u9009 \u9884\u9009\u8d5b \u5c06 \u5141\u8bb8 \u4f7f\u7528 \u6bd4 \u4e3b\u8981 \u7ade\u4e89 \u5bf9\u624b \u7ade\u4e89\u5bf9\u624b \u66f4 \u4e25\u683c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5957\u4ef6 \uff0c \u5305\u62ec 0 - 4 \u4e2a RGB \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3001 0 - 2 \u4e2a \u96f7\u8fbe \u548c 0 - 1 \u4e2a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u4ee5\u53ca \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 IMU \u548c \u901f\u5ea6 \u901f\u5ea6\u8ba1 \uff08 \u4ee5\u53ca \u7528\u4e8e MAP \u8d5b\u9053 \u7684 OpenDRIVE \uff09 \u3002 \u6211\u4eec \u9f13\u52b1 \u60a8 \u4f7f\u7528 \u9650\u5b9a \u9650\u5b9a\u7b26 \u6765 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u5df2 \u6b63\u786e \u914d\u7f6e \u5e76 \u5728 \u6392\u884c \u6392\u884c\u699c \u4e0a \u6b63\u5e38 \u8fd0\u884c \u3002","title":"\u8d44\u683c\u8d5b \u8d5b\u9053"},{"location":"leaderboard/#_8","text":"\u4ee3\u7406 \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \u53ef\u4ee5 \u901a\u8fc7 \u591a\u79cd \u6307\u6807 \u6765 \u8868\u5f81 \u3002 \u5bf9\u4e8e \u8fd9\u4e2a \u6392\u884c \u6392\u884c\u699c \uff0c \u6211\u4eec \u9009\u62e9 \u4e86 \u4e00\u7ec4 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u9a7e\u9a76 \u4e0d\u540c \u65b9\u9762 \u7684 \u6307\u6807 \u3002 \u867d\u7136 \u6240\u6709 \u8def\u7531 \u90fd \u5177\u6709 \u76f8\u540c \u7c7b\u578b \u7684 \u6307\u6807 \uff0c \u4f46 \u5b83\u4eec \u5404\u81ea \u7684 \u503c \u662f \u5355\u72ec \u8ba1\u7b97 \u7684 \u3002 \u5177\u4f53 \u6307\u6807 \u5982\u4e0b \uff1a \u9a7e\u9a76 \u5206\u6570 \uff1a ( { R _ i P _ i } , ) \u2014 \u6392\u884c \u6392\u884c\u699c \u7684 \u4e3b\u8981 \u6307\u6807 \uff0c \u4f5c\u4e3a \u8def\u7ebf \u5b8c\u6210 \u4e0e \u8fdd\u89c4 \u5904\u7f5a \u4e4b\u95f4 \u7684 \u4e58\u79ef \u3002 \u8fd9\u91cc ( Ri ) \u662f ( i \u2212 th ) \u8def\u7ebf \u7684 \u5b8c\u6210 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u800c ( Pi ) \u662f ( i \u2212 th ) \u8def\u7ebf \u7684 \u8fdd\u89c4 \u5904\u7f5a \u3002 \u8def\u7ebf \u5b8c\u6210 \uff1a \u5ba2\u670d \u4eba\u5458 \u5b8c\u6210 \u7684 \u8def\u7ebf \u8ddd\u79bb \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8fdd\u89c4 \u5904\u7f5a : ( \\ prod _ j ^ { \\ text { ped . , ... , stop } } ( { p _ i ^ j } ) ^ { \\ text { # infractions } _ j } . ) \u2014 \u6392\u884c \u6392\u884c\u699c \u8ddf\u8e2a \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u8be5 \u6307\u6807 \u5c06 \u4ee3\u7406 \u89e6\u53d1 \u7684 \u6240\u6709 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u6c47\u603b \u4e3a \u51e0\u4f55 \u7ea7\u6570 \u51e0\u4f55\u7ea7\u6570 \u3002 \u4ee3\u7406 \u7684 \u7406\u60f3 \u57fa\u7840 \u5206\u6570 \u662f 1.0 \uff0c \u6bcf \u72af\u4e0b \u4e00\u79cd \u7c7b\u578b \u7684 \u8fdd\u89c4 \uff0c \u8be5 \u5206\u6570 \u90fd \u4f1a \u964d\u4f4e \u3002 \u5f53 \u6240\u6709 \u8def\u7531 \u5b8c\u6210 \u540e \uff0c \u8fd8\u4f1a \u751f\u6210 \u524d \u4e09\u79cd \u7c7b\u578b \u4e2d \u6bcf \u4e00\u79cd \u7684 \u5168\u5c40 \u5ea6\u91cf \uff0c \u5373 \u6240\u6709 \u5355\u72ec \u8def\u7531 \u7ec4\u5408 \u7684 \u7b97\u672f \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u3002 \u5168\u5c40 \u9a7e\u9a76 \u5206\u6570 \u662f \u5bf9 \u60a8 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fdb\u884c \u5206\u7c7b \u7684 \u4e3b\u8981 \u6307\u6807 \u3002","title":"\u8bc4\u4f30 \u548c \u6307\u6807"},{"location":"leaderboard/#_9","text":"Carla \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u7684 \u5355\u72ec \u6307\u6807 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u6709 \u4e00\u4e2a \u60e9\u7f5a \u7cfb\u6570 \uff0c \u6bcf\u6b21 \u53d1\u751f \u65f6 \u90fd \u4f1a \u5e94\u7528 \u8be5 \u7cfb\u6570 \u3002 \u6309 \u4e25\u91cd \u7a0b\u5ea6 \u6392\u5e8f \uff0c \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u5982\u4e0b \u3002 \u4e0e \u884c\u4eba \u76f8\u649e \u2014 0.50 . \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u2014 0.60 . \u4e0e \u9759\u6001 \u5143\u7d20 \u7684 \u78b0\u649e - 0.65 . \u7ea2\u706f \u95ef\u7ea2\u706f \u2014 \u2014 0.70 \u3002 \u8fd0\u884c \u505c\u8f66 \u6807\u5fd7 \u2014 0.80 . \u67d0\u4e9b \u573a\u666f \u7684 \u884c\u4e3a \u53ef\u4ee5 \u65e0\u9650 \u9650\u671f \u65e0\u9650\u671f \u5730 \u963b\u6b62 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u573a\u666f \u5c06 \u6709 4 \u5206\u949f \u7684 \u8d85\u65f6 \u65f6\u95f4 \uff0c \u4e4b\u540e \u81ea\u52a8 \u8f66\u8f86 \u5c06 \u88ab \u91ca\u653e \u4ee5 \u7ee7\u7eed \u8def\u7ebf \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8d85\u8fc7 \u65f6\u9650 \uff0c \u5219 \u4f1a \u53d7\u5230 \u5904\u7f5a \uff1a \u573a\u666f \u8d85\u65f6 \u2014 0.7 \u9884\u8ba1 \u4ee3\u7406 \u5c06 \u4fdd\u6301 \u6700\u4f4e \u901f\u5ea6 \u4ee5 \u9002\u5e94 \u9644\u8fd1 \u7684 \u4ea4\u901a \u3002 \u4ee3\u7406 \u7684 \u901f\u5ea6 \u5c06 \u4e0e \u9644\u8fd1 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u8fdb\u884c \u6bd4\u8f83 \u3002 \u672a\u80fd \u4fdd\u6301 \u9002\u5f53 \u7684 \u901f\u5ea6 \u5c06 \u53d7\u5230 \u5904\u7f5a \u3002 \u6240 \u65bd\u52a0 \u7684 \u60e9\u7f5a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u901f\u5ea6 \u5dee \u7684 \u5927\u5c0f \uff0c \u6700\u9ad8 \u53ef \u8fbe \u4ee5\u4e0b \u503c \uff1a \u672a\u80fd \u4fdd\u6301 \u6700\u4f4e \u901f\u5ea6 \u2014 0.7 \u7279\u5de5 \u5e94\u8be5 \u7ed9 \u4ece \u540e\u9762 \u9a76\u6765 \u7684 \u7d27\u6025 \u8f66\u8f86 \u8ba9\u8def \u3002 \u4e0d\u8ba9 \u7d27\u6025 \u8f66\u8f86 \u901a\u8fc7 \u5c06 \u53d7\u5230 \u5904\u7f5a \uff1a \u672a\u80fd \u7ed9 \u7d27\u6025 \u8f66\u8f86 \u8ba9\u8def \u2014 0.7 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u8fd8\u6709 \u4e00\u79cd \u989d\u5916 \u7684 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \uff0c \u5b83 \u6ca1\u6709 \u7cfb\u6570 \uff0c \u800c\u662f \u5f71\u54cd \u8def\u7ebf \u5b8c\u6210 \uff08 ( R _ i ) \uff09 \u7684 \u8ba1\u7b97 \u3002 \u8d8a\u91ce \u9a7e\u9a76 - \u5982\u679c \u4ee3\u7406 \u9a7e\u9a76 \u8d8a\u91ce \uff0c \u5219 \u5728 \u8ba1\u7b97 \u8def\u7ebf \u5b8c\u6210 \u5206\u6570 \u65f6 \u5c06 \u4e0d\u4f1a \u8003\u8651 \u8be5 \u8def\u7ebf \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u6b64\u5916 \uff0c \u67d0\u4e9b \u4e8b\u4ef6 \u4f1a \u4e2d\u65ad \u4eff\u771f \uff0c \u4ece\u800c \u963b\u6b62 \u4ee3\u7406 \u7ee7\u7eed \u8fdb\u884c \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6b63\u5728 \u4eff\u771f \u7684 \u8def\u7ebf \u5c06 \u88ab \u5173\u95ed \uff0c \u6392\u884c \u6392\u884c\u699c \u5c06 \u79fb\u81f3 \u4e0b \u4e00\u6761 \uff0c \u6b63\u5e38 \u89e6\u53d1 \u3002 \u8def\u7ebf \u504f\u5dee 30 - \u5982\u679c \u5ba2\u670d \u4eba\u5458 \u504f\u79bb \u6307\u5b9a \u8def\u7ebf \u8d85\u8fc7 \u7c73 \u3002 \u4ee3\u7406 \u88ab \u963b\u6b62 180 \u2014 \u5982\u679c \u4ee3\u7406 \u5728 \u4eff\u771f \u79d2 \u5185 \u6ca1\u6709 \u91c7\u53d6 \u4efb\u4f55 \u91c7\u53d6\u4efb\u4f55 \u64cd\u4f5c \u3002 \u4eff\u771f \u8d85\u65f6 \u2014 \u2014 \u5982\u679c \u5728 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5185 \u65e0\u6cd5 \u5efa\u7acb \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 60 \u3002 \u8def\u7ebf \u8d85\u65f6 - \u5982\u679c \u8def\u7ebf \u4eff\u771f \u82b1\u8d39 \u592a \u65f6\u95f4 \u957f\u65f6\u95f4 \u624d\u80fd \u5b8c\u6210 \u3002 \u6bcf\u6b21 \u53d1\u751f \u4e0a\u8ff0 \u4efb\u4f55 \u60c5\u51b5 \u65f6 \uff0c \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8fd9\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u5c06 \u663e\u793a \u4e3a \u5217\u8868 \uff0c \u4f9b \u60a8 \u67e5\u770b \u8def\u7ebf \u7684 \u5404\u4e2a \u6307\u6807 \u3002 \u4ee5\u4e0b \u662f \u4ee3\u7406 \u7ea2\u706f \u95ef\u7ea2\u706f \u5e76 \u504f\u79bb \u8def\u7ebf \u7684 \u8def\u7ebf \u793a\u4f8b \u3002 \" infractions \" : { \" Collisions with layout \" : [ ] , \" Collisions with pedestrians \" : [ ] , \" Collisions with vehicles \" : [ ] , \" Red lights infractions \" : [ \" Agent ran a red light 203 at ( x = 341.25 , y = 209.1 , z = 0.104 ) \" ] , \" Stop sign infractions \" : [ ] , \" Off - road infractions \" : [ ] , \" Min speed infractions \" : [ ] , \" Yield to emergency vehicle infractions \" : [ ] , \" Scenario timeouts \" : [ ] , \" Route deviations \" : [ \" Agent deviated from the route at ( x = 95.92 , y = 165.673 , z = 0.138 ) \" ] , \" Agent blocked \" : [ ] , \" Route timeouts \" : [ ] } \u7b14\u8bb0 \u5168\u5c40 \u8fdd\u89c4 \u884c\u4e3a \u8fdd\u89c4\u884c\u4e3a \u5c06 \u5404\u4e2a \u8def\u7ebf \u7684 \u6570\u636e \u538b\u7f29 \u6570\u636e\u538b\u7f29 \u4e3a \u5355\u4e2a \u503c \uff0c \u5e76 \u4ee5 \u6bcf \u516c\u91cc \u7684 \u4e8b\u4ef6 \u6570 \u7ed9\u51fa \u3002","title":"\u8fdd\u89c4 \u548c \u5173\u95ed \u4e8b\u4ef6"},{"location":"leaderboard/#_10","text":"\u4e3a\u4e86 \u719f\u6089 \u6392\u884c \u6392\u884c\u699c \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u4ed4\u7ec6 \u9605\u8bfb \u4ed4\u7ec6\u9605\u8bfb \u201c \u5165\u95e8 \u201d \u90e8\u5206 \u3002 \u8bf7\u82b1 \u8db3\u591f \u7684 \u65f6\u95f4 \u786e\u4fdd \u4e00\u5207 \u5728 \u672c\u5730 \u6309 \u9884\u671f \u8fd0\u884c \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u8bf7 \u68c0\u67e5 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u51c6\u5907 \u63d0\u4ea4 \u3002","title":"\u5f00\u59cb \u4f7f\u7528"},{"location":"leaderboard/#10","text":"\u6392\u884c \u6392\u884c\u699c \u76ee\u524d \u4e3a 2.0 \u7248\u672c \u3002 \u6392\u884c \u6392\u884c\u699c 1.0 \u7248 \u4ecd\u7136 \u53ef\u4ee5 \u652f\u6301 \u60a8 \u4e4b\u524d \u7684 \u5de5\u4f5c \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u201c \u5f00\u59cb \u201d \u548c \u201c \u63d0\u4ea4 \u201d \u9875\u9762 \u4ee5 \u83b7\u53d6 \u6392\u884c \u6392\u884c\u699c 1.0 \u7248\u672c \u7684 \u63d0\u4ea4 \u4fe1\u606f \u3002","title":"\u6392\u884c\u699c 1.0"},{"location":"leaderboard/#_11","text":"\u611f\u8c22 \u6211\u4eec \u7684 \u8d5e\u52a9 \u8d5e\u52a9\u5546 \u548c \u5408\u4f5c \u4f5c\u8005 \u5408\u4f5c\u8005 \u7684 \u6177\u6168 \u89e3\u56ca \u6177\u6168\u89e3\u56ca \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4f5c\u4e3a \u4e00\u9879 \u5411 \u7814\u7a76 \u754c \u63d0\u4f9b \u7684 \u670d\u52a1 \u514d\u8d39 \u63d0\u4f9b \u3002 \u6bcf\u4e2a \u63d0\u4ea4 \u90fd \u5c06 \u5728 AWS \u4e2d \u4f7f\u7528 g5.12 xlarge \u5b9e\u4f8b \u8fdb\u884c \u8bc4\u4f30 \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u8bbf\u95ee \u5177\u6709 \u73b0\u4ee3 GPU \u548c CPU \u7684 \u4e13\u7528 \u8282\u70b9 \u3002 \u6bcf\u4e2a \u6708 \u5411 \u56e2\u961f \u63d0\u4ea4 \u7684 \u63d0\u4ea4 \u6570\u91cf \u6709\u9650 \uff08 \u76ee\u524d \u4e3a 5 \u4efd \uff09 \u3002 \u63d0\u4ea4 \u6d25\u8d34 \u6bcf\u6708 \u81ea\u52a8 \u8865\u5145 \u3002 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u7ec4\u7ec7 \u7ec4\u7ec7\u8005 \u4fdd\u7559 \u5411 \u56e2\u961f \u5206\u914d \u989d\u5916 \u6d25\u8d34 \u7684 \u6743\u5229 \u3002 \u8be5 \u7ec4\u7ec7 \u8fd8 \u4fdd\u7559 \u4fee\u6539 \u6bcf\u6708 \u63d0\u4ea4 \u6d25\u8d34 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u7684 \u6743\u5229 \u3002 \u4e25\u683c \u7981\u6b62 \u6ee5\u7528 \u6216 \u653b\u51fb Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \uff0c \u5305\u62ec \u7528\u4e8e \u8fd0\u884c \u670d\u52a1 \u7684 \u6240\u6709 \u8f6f\u4ef6 \u548c \u786c\u4ef6 \u3002 \u504f\u79bb Carla \u6392\u884c \u6392\u884c\u699c \u7cbe\u795e \u7684 \u884c\u4e3a \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u56e2\u961f \u89e3\u6563 \u3002 \u5982\u9700 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8bf4\u660e \uff0c \u8bf7 \u9605\u8bfb \u6761\u6b3e \u548c \u6761\u4ef6 \u3002 \u6027\u80fd \u6392\u884c \u6392\u884c\u699c","title":"\u6761\u6b3e \u548c \u6761\u4ef6"},{"location":"leaderboard_challenge/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b 2023 \u5e74 Carla \u6311\u6218 \u6311\u6218\u8d5b \u6982\u8ff0 \u6b22\u8fce \u53c2\u52a0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u3002 \u672c\u6b21 \u7ade\u8d5b \u5411 \u5b66\u672f \u5b66\u672f\u754c \u548c \u5de5\u4e1a \u4e1a\u754c \u5de5\u4e1a\u754c \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5f00\u653e \u3002 \u60a8 \u53ea \u9700 \u5728 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e0a \u6ce8\u518c \uff0c \u5e76 \u63d0\u4f9b \u60a8 \u7684 \u56e2\u961f \u540d\u79f0 \u548c \u6240\u5728 \u673a\u6784 \u5373\u53ef \u3002 \u8be5 \u6311\u6218 \u5229\u7528 \u73b0\u6709 \u7684 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5e73\u53f0 \u6765 \u8bc4\u4f30 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \u3002 \u6311\u6218 \u7684 \u4e3b\u8981 \u76ee\u6807 \u4ecd\u7136 \u662f \u8bc4\u4f30 \u81ea\u52a8 \u4ee3\u7406 \u5728 \u73b0\u5b9e \u4ea4\u901a \u60c5\u51b5 \u4e0b \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \uff0c \u5982 \u6392\u884c \u6392\u884c\u699c \u673a\u5236 \u4e2d \u6240 \u5b9a\u4e49 \u3002 \u53c2\u8d5b \u53c2\u8d5b\u961f \u5fc5\u987b \u5728 2 \u79cd \u5929\u6c14 \u6761\u4ef6 \u4e0b \u5b8c\u6210 10 \u6761 \u8def\u7ebf \uff0c \u91cd\u590d 5 \u6b21 \u3002 \u8be5 \u6311\u6218 \u9075\u5faa \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5b9a\u4e49 \u7684 \u76f8\u540c \u7ed3\u6784 \u548c \u89c4\u5219 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u53ef \u7528\u4e8e \u6311\u6218 \u7684 \u89c4\u8303 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u52a0 \u4e24\u4e2a \u53ef\u7528 \u8d5b\u9053 \u4e2d \u7684 \u4efb\u4f55 \u4e00\u4e2a \uff1a SENSORS \u548c MAP \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u5f97 \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u7684 \u4efb\u4f55 \u7279\u6743 \u4fe1\u606f \uff0c \u5305\u62ec \u89c4\u5212 \u5668 \u6216 \u4efb\u4f55 \u7c7b\u578b \u7684 \u57fa\u672c \u4e8b\u5b9e \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u529f\u80fd \u7684 \u63d0\u4ea4 \u5c06 \u88ab \u62d2\u7edd \uff0c \u56e2\u961f \u5c06 \u88ab \u7981\u6b62 \u8fdb\u5165 \u8be5 \u5e73\u53f0 \u3002 \u6311\u6218 \u7684 \u673a\u5236 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u7684 \u673a\u5236 \u4e0e Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5b9a\u4e49 \u7684 \u673a\u5236 \u76f8\u540c \u3002 \u800c\u8a00 \u7b80\u800c\u8a00\u4e4b \uff1a \u901a\u8fc7 \u9605\u8bfb \u6392\u884c \u6392\u884c\u699c \u4ecb\u7ecd \u6765 \u719f\u6089 \u4efb\u52a1 \u3002 \u901a\u8fc7 \u9605\u8bfb \u5165\u95e8 \u6307\u5357 \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u65b0 \u4ee3\u7406 \u3002 \u62a5\u540d \u53c2\u52a0 \u6311\u6218 \u3002 \u4e86\u89e3 \u5982\u4f55 \u6210\u529f \u63d0\u4ea4 \u3002 \u63d0\u4ea4 \u60a8 \u7684 \u4ee3\u7406 \u3002 \u5728 \u6311\u6218 \u7ed3\u675f \u65e5\u671f \u4e4b\u524d \u516c\u5f00 \u60a8 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u65f6\u95f4 \u65f6\u95f4\u8868 \uff09 \u3002 \u7b14\u8bb0 \u5728 \u6311\u6218 \u6311\u6218\u8d5b \u5f00\u59cb \u548c \u7ed3\u675f \u65e5\u671f \u5185\u5728 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e0a \u516c\u5f00 \u7684 \u6240\u6709 \u63d0\u4ea4 \u5185\u5bb9 \u90fd \u5c06 \u88ab \u8003\u8651 \u53c2\u52a0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u3002 \u6bcf\u4e2a \u8d5b\u9053 \u7684 \u524d 1 \u540d \u63d0\u4ea4 \u4f5c\u54c1 \u5c06 \u88ab \u9080\u8bf7 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u7814\u8ba8 \u7814\u8ba8\u4f1a \u4e0a \u5c55\u793a \u4ed6\u4eec \u7684 \u6210\u679c \u3002 \u6b64\u5916 \uff0c \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u88ab \u9080\u8bf7 \u63d0\u4ea4 \u4e00\u4efd \u63cf\u8ff0 \u5176 \u63d0\u4ea4 \u5185\u5bb9 \u7684 \u6280\u672f \u62a5\u544a \uff08 \u6700 \u591a 4 \u9875 \uff09 \u4ee5\u53ca \u63cf\u8ff0 \u5176 \u65b9\u6cd5 \u7684 \u89c6\u9891 \u3002 \u6839\u636e \u8fd9\u4e9b \u6280\u672f \u62a5\u544a \u7684 \u65b0\u9896 \u65b0\u9896\u6027 \u548c \u539f\u521b \u539f\u521b\u6027 \uff0c \u7ec4\u7ec7 \u5c06 \u9009\u62e9 \u6700 \u591a \u4e24\u4e2a \u56e2\u961f \u5728 \u7814\u8ba8 \u7814\u8ba8\u4f1a \u4e0a \u5c55\u793a \u4ed6\u4eec \u7684 \u5de5\u4f5c \u3002 \u4ee5\u524d \u7684 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u5982\u9700 \u4e86\u89e3 \u6709\u5173 \u4e4b\u524d \u6311\u6218 \u53ca\u5176 \u7ed3\u679c \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 2022 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2022 \u4e0a \u4e3b\u529e \uff1b 2021 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2021 \u4e0a \u4e3b\u529e \uff1b 2020 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2020 \u4e0a \u4e3b\u529e \uff1b 2019 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 CVPR 2019 \u4e0a \u4e3b\u529e \u3002","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218\u8d5b"},{"location":"leaderboard_challenge/#carla","text":"","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218\u8d5b"},{"location":"leaderboard_challenge/#2023-carla","text":"","title":"2023 \u5e74 Carla \u6311\u6218\u8d5b"},{"location":"leaderboard_challenge/#_1","text":"\u6b22\u8fce \u53c2\u52a0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u3002 \u672c\u6b21 \u7ade\u8d5b \u5411 \u5b66\u672f \u5b66\u672f\u754c \u548c \u5de5\u4e1a \u4e1a\u754c \u5de5\u4e1a\u754c \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5f00\u653e \u3002 \u60a8 \u53ea \u9700 \u5728 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e0a \u6ce8\u518c \uff0c \u5e76 \u63d0\u4f9b \u60a8 \u7684 \u56e2\u961f \u540d\u79f0 \u548c \u6240\u5728 \u673a\u6784 \u5373\u53ef \u3002 \u8be5 \u6311\u6218 \u5229\u7528 \u73b0\u6709 \u7684 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5e73\u53f0 \u6765 \u8bc4\u4f30 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \u3002 \u6311\u6218 \u7684 \u4e3b\u8981 \u76ee\u6807 \u4ecd\u7136 \u662f \u8bc4\u4f30 \u81ea\u52a8 \u4ee3\u7406 \u5728 \u73b0\u5b9e \u4ea4\u901a \u60c5\u51b5 \u4e0b \u7684 \u9a7e\u9a76 \u719f\u7ec3 \u7a0b\u5ea6 \u719f\u7ec3\u7a0b\u5ea6 \uff0c \u5982 \u6392\u884c \u6392\u884c\u699c \u673a\u5236 \u4e2d \u6240 \u5b9a\u4e49 \u3002 \u53c2\u8d5b \u53c2\u8d5b\u961f \u5fc5\u987b \u5728 2 \u79cd \u5929\u6c14 \u6761\u4ef6 \u4e0b \u5b8c\u6210 10 \u6761 \u8def\u7ebf \uff0c \u91cd\u590d 5 \u6b21 \u3002 \u8be5 \u6311\u6218 \u9075\u5faa \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5b9a\u4e49 \u7684 \u76f8\u540c \u7ed3\u6784 \u548c \u89c4\u5219 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u53ef \u7528\u4e8e \u6311\u6218 \u7684 \u89c4\u8303 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u52a0 \u4e24\u4e2a \u53ef\u7528 \u8d5b\u9053 \u4e2d \u7684 \u4efb\u4f55 \u4e00\u4e2a \uff1a SENSORS \u548c MAP \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u5f97 \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u7684 \u4efb\u4f55 \u7279\u6743 \u4fe1\u606f \uff0c \u5305\u62ec \u89c4\u5212 \u5668 \u6216 \u4efb\u4f55 \u7c7b\u578b \u7684 \u57fa\u672c \u4e8b\u5b9e \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u529f\u80fd \u7684 \u63d0\u4ea4 \u5c06 \u88ab \u62d2\u7edd \uff0c \u56e2\u961f \u5c06 \u88ab \u7981\u6b62 \u8fdb\u5165 \u8be5 \u5e73\u53f0 \u3002","title":"\u6982\u8ff0"},{"location":"leaderboard_challenge/#_2","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u7684 \u673a\u5236 \u4e0e Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u5b9a\u4e49 \u7684 \u673a\u5236 \u76f8\u540c \u3002 \u800c\u8a00 \u7b80\u800c\u8a00\u4e4b \uff1a \u901a\u8fc7 \u9605\u8bfb \u6392\u884c \u6392\u884c\u699c \u4ecb\u7ecd \u6765 \u719f\u6089 \u4efb\u52a1 \u3002 \u901a\u8fc7 \u9605\u8bfb \u5165\u95e8 \u6307\u5357 \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u65b0 \u4ee3\u7406 \u3002 \u62a5\u540d \u53c2\u52a0 \u6311\u6218 \u3002 \u4e86\u89e3 \u5982\u4f55 \u6210\u529f \u63d0\u4ea4 \u3002 \u63d0\u4ea4 \u60a8 \u7684 \u4ee3\u7406 \u3002 \u5728 \u6311\u6218 \u7ed3\u675f \u65e5\u671f \u4e4b\u524d \u516c\u5f00 \u60a8 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u65f6\u95f4 \u65f6\u95f4\u8868 \uff09 \u3002 \u7b14\u8bb0 \u5728 \u6311\u6218 \u6311\u6218\u8d5b \u5f00\u59cb \u548c \u7ed3\u675f \u65e5\u671f \u5185\u5728 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \u4e0a \u516c\u5f00 \u7684 \u6240\u6709 \u63d0\u4ea4 \u5185\u5bb9 \u90fd \u5c06 \u88ab \u8003\u8651 \u53c2\u52a0 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \u3002 \u6bcf\u4e2a \u8d5b\u9053 \u7684 \u524d 1 \u540d \u63d0\u4ea4 \u4f5c\u54c1 \u5c06 \u88ab \u9080\u8bf7 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u7814\u8ba8 \u7814\u8ba8\u4f1a \u4e0a \u5c55\u793a \u4ed6\u4eec \u7684 \u6210\u679c \u3002 \u6b64\u5916 \uff0c \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u88ab \u9080\u8bf7 \u63d0\u4ea4 \u4e00\u4efd \u63cf\u8ff0 \u5176 \u63d0\u4ea4 \u5185\u5bb9 \u7684 \u6280\u672f \u62a5\u544a \uff08 \u6700 \u591a 4 \u9875 \uff09 \u4ee5\u53ca \u63cf\u8ff0 \u5176 \u65b9\u6cd5 \u7684 \u89c6\u9891 \u3002 \u6839\u636e \u8fd9\u4e9b \u6280\u672f \u62a5\u544a \u7684 \u65b0\u9896 \u65b0\u9896\u6027 \u548c \u539f\u521b \u539f\u521b\u6027 \uff0c \u7ec4\u7ec7 \u5c06 \u9009\u62e9 \u6700 \u591a \u4e24\u4e2a \u56e2\u961f \u5728 \u7814\u8ba8 \u7814\u8ba8\u4f1a \u4e0a \u5c55\u793a \u4ed6\u4eec \u7684 \u5de5\u4f5c \u3002","title":"\u6311\u6218 \u7684 \u673a\u5236"},{"location":"leaderboard_challenge/#carla_1","text":"\u5982\u9700 \u4e86\u89e3 \u6709\u5173 \u4e4b\u524d \u6311\u6218 \u53ca\u5176 \u7ed3\u679c \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 2022 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2022 \u4e0a \u4e3b\u529e \uff1b 2021 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2021 \u4e0a \u4e3b\u529e \uff1b 2020 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 NeurIPS 2020 \u4e0a \u4e3b\u529e \uff1b 2019 \u5e74 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b - \u5728 CVPR 2019 \u4e0a \u4e3b\u529e \u3002","title":"\u4ee5\u524d \u7684 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218"},{"location":"leaderboard_get_started/","text":"\u5f00\u59cb \u4f7f\u7528 \u6392\u884c \u6392\u884c\u699c 2.0 \u7b14\u8bb0 \u672c\u9875 \u4fe1\u606f \u6d89\u53ca \u6700\u65b0 \u7248\u672c Leaderboard 2.0 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u4ee5\u524d \u7248\u672c \u7684 \u6392\u884c \u6392\u884c\u699c \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6392\u884c \u6392\u884c\u699c 1.0 \u5165\u95e8 \u8bf4\u660e \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5f00\u53d1 \u60a8 \u7684 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u60a8 \u9700\u8981 \u5b8c\u6210 \u4ee5\u4e0b \u8fc7\u7a0b \uff1a \u7cfb\u7edf \u8bbe\u7f6e \u4e0b\u8f7d CARLA \u6392\u884c \u6392\u884c\u699c \u5305 \u4e0b\u8f7d \u6253\u5305 \u7684 Carla \u6392\u884c \u6392\u884c\u699c \u7248\u672c \u3002 \u5c06 \u5305 \u89e3\u538b \u5230 \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4f8b\u5982 Carla \u3002 \u7b14\u8bb0 \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u66f4\u6539 $ { CARLA _ ROOT } \u53d8\u91cf \u4ee5 \u5bf9\u5e94 \u4e8e \u60a8 \u7684 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4e3a\u4e86 \u4f7f\u7528 Carla Python API \uff0c \u60a8 \u9700\u8981 \u5728 \u60a8 \u559c\u6b22 \u7684 \u73af\u5883 \u4e2d \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u3002 \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5bf9\u4e8e conda \uff0c \u9996\u5148 \u521b\u5efa \u4e00\u4e2a \u65b0 \u73af\u5883 \uff1a conda create - n py37 python = 3.7 conda activate py37 cd $ { CARLA _ ROOT } # \u6539\u53d8 \u60a8 \u7684 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 $ { CARLA _ ROOT } pip3 install - r PythonAPI / carla / requirements . txt \u7b14\u8bb0 Carla \u6392\u884c \u6392\u884c\u699c \u7248\u672c \u57fa\u4e8e 0.9 . 14 \u7248\u672c \u3002 \u5b83 \u8fd8 \u5177\u6709 \u5373\u5c06 \u53d1\u5e03 \u7684 0.9 . 14 \u7248\u672c \u7684 \u4e00\u4e9b \u529f\u80fd \uff0c \u4f8b\u5982 \u65b0 \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u56e0\u6b64 \uff0c \u5728 \u4f7f\u7528 API \u65f6\u8bf7 \u53c2\u8003 \u6700\u65b0 \u7684 \u6587\u6863 \u3002 \u83b7\u53d6 \u6392\u884c \u6392\u884c\u699c \u548c \u573a\u666f \u8dd1\u8005 \u4e0b\u8f7d \u6392\u884c \u6392\u884c\u699c \u5b58\u50a8 \u5e93 Leaderboard - 2.0 \u5206\u652f \u3002 git clone - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / leaderboard . git \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u66f4\u6539 $ { LEADERBOARD _ ROOT } \u53d8\u91cf \u4ee5 \u5bf9\u5e94 \u4e8e \u60a8 \u7684 \u6392\u884c \u6392\u884c\u699c \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5b89\u88c5 \u6240 \u9700 \u7684 Python \u4f9d\u8d56 \u9879 \u3002 cd $ { LEADERBOARD _ ROOT } # \u6539\u53d8 \u60a8 \u7684 \u6392\u884c \u6392\u884c\u699c \u76ee\u5f55 \u6839\u76ee\u5f55 $ { LEADERBOARD _ ROOT } pip3 install - r requirements . txt \u4e0b\u8f7d Scenario Runner \u5b58\u50a8 \u5e93 \u6392\u884c \u6392\u884c\u699c - 2.0 \u5206\u652f \u3002 git clone - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / scenario _ runner . git \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u5c06 \u66f4 \u6539\u4e3a $ { SCENARIO _ RUNNER _ ROOT } \u4e0e \u60a8 \u7684 Scenario _ Runner \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u76f8\u5bf9 \u5e94 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 Python \u73af\u5883 \u5b89\u88c5 \u6240 \u9700 \u7684 Python \u4f9d\u8d56 \u9879 \u3002 cd $ { SCENARIO _ RUNNER _ ROOT } # \u6539\u53d8 \u60a8 \u7684 Scenario _ Runner \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 $ { SCENARIO _ RUNNER _ ROOT } pip3 install - r requirements . txt \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \u9996\u5148 \uff0c \u4e0b\u8f7d \u5e76 \u5b89\u88c5 \u9002\u5f53 \u7684 ROS \u6216 ROS2 \u53d1\u884c \u53d1\u884c\u7248 \u3002 Leaderboard 2.0 \u652f\u6301 ROS Melodic \u3001 ROS Noetic \u548c ROS2 Foxy \u3002 \u7136\u540e \uff0c \u514b\u9686 \u5e76 \u6784\u5efa ROS \u6216 ROS2 \u7684 Carla ROS \u6865 \u5b58\u50a8 \u5e93 \u3002 \u786e\u4fdd leaderboard - 2.0 \u5728 \u514b\u9686 Carla ROS Bridge \u5b58\u50a8 \u5e93\u65f6 \u6307\u5b9a \u5206\u652f \uff1a git clone -- recurse - submodules - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / ros - bridge \u5b9a\u4e49 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6211\u4eec \u9700\u8981 \u786e\u4fdd \u4e0d\u540c \u7684 \u6a21\u5757 \u53ef\u4ee5 \u627e\u5230 \u5f7c\u6b64 \u3002 ~ / . bashrc \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u6253\u5f00 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \uff1a gedit ~ / . bashrc \u7f16\u8f91 \u60a8 \u7684 ~ / . bashrc \u4e2a\u4eba \u8d44\u6599 \u4e2a\u4eba\u8d44\u6599 \uff0c \u6dfb\u52a0 \u4ee5\u4e0b \u5b9a\u4e49 \u3002 \u7f16\u8f91 \u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u6587\u4ef6 \u3002 export CARLA _ ROOT = PATH _ TO _ CARLA _ ROOT export SCENARIO _ RUNNER _ ROOT = PATH _ TO _ SCENARIO _ RUNNER export LEADERBOARD _ ROOT = PATH _ TO _ LEADERBOARD export PYTHONPATH = \" $ { CARLA _ ROOT } / PythonAPI / carla / \" : \" $ { SCENARIO _ RUNNER _ ROOT } \" : \" $ { LEADERBOARD _ ROOT } \" : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - 0.9 . 14 - py3.7 - linux - x86 _ 64 . egg \" : $ { PYTHONPATH } \u8bf7 \u8bb0\u4f4f . bashrc \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f \u8fd9\u4e9b \u66f4\u6539 \u751f\u6548 \uff1a source ~ / . bashrc \u521b\u5efa \u5e26\u6709 \u6392\u884c \u6392\u884c\u699c \u7684 \u81ea\u6cbb \u4ee3\u7406 \u6392\u884c \u6392\u884c\u699c \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6392\u884c \u6392\u884c\u699c \u5c06 \u8d1f\u8d23 \u8fd0\u884c \u60a8 \u7684 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u5e76 \u8bc4\u4f30 \u5176 \u5728 \u591a\u6761 \u8def\u7ebf \u7684 \u4e0d\u540c \u4ea4\u901a \u60c5\u51b5 \u4e0b \u7684 \u884c\u4e3a \u3002 \u4e3a\u4e86 \u66f4\u597d \u5730 \u7406\u89e3 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u8ba9 \u6211\u4eec \u8fd0\u884c \u4e00\u4e2a \u57fa\u672c \u4ee3\u7406 \u3002 \u5728 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 cd $ { CARLA _ ROOT } . / CarlaUE4 . sh - quality - level = Epic - world - port = 2000 - resx = 800 - resy = 600 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 $ { LEADERBOARD _ ROOT } . \u867d\u7136 \u6392\u884c \u6392\u884c\u699c \u662f \u4f7f\u7528 leaderboard _ evaluator . py python \u811a\u672c \u8fd0\u884c \u7684 \uff0c \u4f46 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6570\u91cf \u53ef\u80fd \u4f1a \u8ba9 \u4f7f\u7528 \u7ec8\u7aef \u76f4\u63a5 \u6267\u884c \u6b64 \u64cd\u4f5c \u611f\u5230 \u975e\u5e38 \u4e0d \u8212\u670d \u3002 \u56e0\u6b64 \uff0c \u5efa\u8bae \u4f7f\u7528 bash \u811a\u672c \u3002 \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u7684 run _ leaderboard . sh \u811a\u672c \u6b63\u662f \u8fd9\u6837 \u505a \u7684 \u3002 \u8fd0\u884c \u811a\u672c \uff1a . / run _ leaderboard . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u8ba9 \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u63a7\u5236 \u4ee3\u7406 \u3002 \u6309\u7167 \u5f69\u8272 \u8def\u5f84 \u70b9 \u6307\u793a \u7684 \u8def\u7ebf \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u8be5 \u811a\u672c \u52a0\u8f7d Town 12 \u4e2d \u7684 \u4e24\u6761 \u8def\u7ebf \u4e24\u6761\u8def \u4e24\u6761\u8def\u7ebf \u3002 \u9075\u5faa \u8def\u7ebf \u5e76 \u9075\u5b88 \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \uff0c \u76f4\u5230 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u7b14\u8bb0 \u624b\u52a8 \u4e2d\u65ad \u6392\u884c \u6392\u884c\u699c \u5c06 \u62a2\u5148 \u505c\u6b62 \u8def\u7ebf \u4eff\u771f \uff0c \u81ea\u52a8 \u8fdb\u5165 \u4e0b \u4e00\u6761 \u8def\u7ebf \u3002 \u4e86\u89e3 \u6392\u884c \u6392\u884c\u699c \u7ec4\u4ef6 \u8fd0\u884c \u6d4b\u8bd5 \u65f6 \uff0c \u6211\u4eec \u8bbe\u7f6e \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53c2\u6570 \u3002 \u8ba9 \u6211\u4eec \u4e86\u89e3 \u4e00\u4e0b \u5b83\u4eec \u4ee5\u53ca \u5b83\u4eec \u5728 \u6392\u884c \u6392\u884c\u699c \u4e2d \u7684 \u4f5c\u7528 \u3002 ROUTES ( XML ) \u2014 \u5c06 \u7528\u4e8e \u4eff\u771f \u7684 \u8def\u7ebf \u96c6 \u3002 \u6bcf\u6761 \u8def\u7ebf \u90fd \u6709 \u4e00\u4e2a \u8d77\u70b9 \uff08 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8def\u5f84 \u70b9 \uff09 \u548c \u4e00\u4e2a \u7ec8\u70b9 \uff08 \u6700\u540e \u4e00\u4e2a \u8def\u5f84 \u70b9 \uff09 \u3002 \u6b64\u5916 \uff0c \u5b83\u4eec \u8fd8 \u53ef\u4ee5 \u5305\u542b \u5929\u6c14 \u6982\u51b5 \u6765 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 \u4e00\u4efd XML \u5305\u542b \u8bb8\u591a \u8def\u7531 \uff0c \u6bcf\u6761 \u8def\u7531 \u90fd \u6709 \u4e00\u4e2a ID \u3002 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u3001 \u6dfb\u52a0 \u548c \u5220\u9664 \u8def\u7ebf \u4ee5 \u8fdb\u884c \u57f9\u8bad \u548c \u9a8c\u8bc1 \u3002 \u6392\u884c \u6392\u884c\u699c \u9644\u5e26 \u4e86 \u4e00\u7ec4 \u7528\u4e8e \u8c03\u8bd5 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u7684 \u8def\u7ebf \u3002 \u7528\u4e8e \u5728\u7ebf \u8bc4\u4f30 \u7684 \u8def\u7ebf \u662f \u79d8\u5bc6 \u7684 \u3002 \u8be5 \u6587\u4ef6 \u8fd8 \u5305\u62ec \u5c06 \u5728 \u4eff\u771f \u4e2d \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u6bcf\u6761 \u8def\u7ebf \u90fd \u6709 \u81ea\u5df1 \u7684 \u4e00\u7ec4 \u573a\u666f \u3002 \u573a\u666f \u88ab \u5b9a\u4e49 \u4e3a \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7279\u5de5 \u5fc5\u987b \u514b\u670d \u8fd9\u4e9b \u573a\u666f \u624d\u80fd \u901a\u8fc7 \u6d4b\u8bd5 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u8bbf\u95ee \u4e00\u7ec4 \u9002\u7528 \u4e8e \u516c\u5171 \u57ce\u9547 \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u5b58\u5728 \u4f7f\u7528 \u4e0d\u540c \u53c2\u6570 \u5b9e\u4f8b \u5316 \u7684 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u573a\u666f \u3002 \u4ee5\u4e0b \u662f \u53ef\u7528 \u65b9\u6848 \u7684 \u5217\u8868 \u3002 REPETITIONS ( int ) \u2014 \u51fa\u4e8e \u7edf\u8ba1 \u76ee\u7684 \uff0c \u6bcf\u6761 \u8def\u7ebf \u91cd\u590d \u7684 \u6b21\u6570 \u3002 TEAM _ AGENT ( Python \u6a21\u5757 ) \u2014 \u4ee3\u7406 \u7684 Python \u6a21\u5757 \u7684 \u8def\u5f84 \u3002 \u521b\u5efa \u4ee3\u7406 \u7684 \u6b65\u9aa4 \u5c06 \u5728 \u4e0b \u4e00\u6b65 \u4e2d \u89e3\u91ca \u3002 \u5176\u4ed6 \u76f8\u5173 \u53c2\u6570 \u5982\u4e0b \u6240\u8ff0 \u3002 TEAM _ CONFIG \uff08 \u7531 \u7528\u6237 \u5b9a\u4e49 \uff09 \u2014 \u6240 \u63d0\u4f9b \u7684 \u4ee3\u7406 \u8bfb\u53d6 \u7684 \u4efb\u610f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u60a8 \u8d1f\u8d23 \u5728 \u4ee3\u7406 \u7c7b\u4e2d \u5b9a\u4e49 \u548c \u89e3\u6790 \u6b64 \u6587\u4ef6 \u3002 DEBUG _ CHALLENGE ( int ) \u2014 \u6307\u793a \u4eff\u771f \u671f\u95f4 \u662f\u5426 \u5e94 \u663e\u793a \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u7684 \u6807\u5fd7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5 \u53d8\u91cf \u672a \u8bbe\u7f6e ( 0 ) \uff0c \u8fd9 \u4e0d\u4f1a \u751f\u6210 \u8981 \u663e\u793a \u7684 \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 1 \u65f6 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u663e\u793a \u8981 \u9075\u5faa \u7684 \u53c2\u8003 \u8def\u7ebf \u3002 \u5982\u679c \u6b64 \u53d8\u91cf \u8bbe\u7f6e \u4e3a \u5927\u4e8e \u4efb\u4f55 \u503c \uff0c 1 \u5f15\u64ce \u5c06 \u6253\u5370 \u4eff\u771f \u7684 \u5b8c\u6574 \u72b6\u6001 \u4ee5 \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 CHECKPOINT _ ENDPOINT ( JSON ) \u2014 \u5c06 \u8bb0\u5f55 Leaderboard \u6307\u6807 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 RECORD _ PATH \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u2014 \u5c06 \u5b58\u50a8 Carla \u65e5\u5fd7 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b\u672a \u8bbe\u7f6e \u3002 RESUME \u2014 \u6307\u793a \u4eff\u771f \u662f\u5426 \u5e94\u4ece \u6700\u540e \u4e00\u6761 \u8def\u7ebf \u6062\u590d \u7684 \u6807\u5fd7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b\u672a \u8bbe\u7f6e \u3002 CHALLENGE _ TRACK _ CODENAME \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u2014 \u4ee3\u7406 \u6b63\u5728 \u7ade\u4e89 \u7684 \u8d5b\u9053 \u3002 \u6709 \u4e24\u4e2a \u53ef\u80fd \u7684 \u9009\u9879 \uff1a SENSORS \u548c MAP \u3002 \u8be5 SENSORS \u8d5b\u9053 \u5141\u8bb8 \u4f7f\u7528 \u591a\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u548c \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u3002 \u9664\u4e86 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e4b\u5916 \uff0c MAP \u8d5b\u9053 \u8fd8 \u5141\u8bb8 \u76f4\u63a5 \u8bbf\u95ee OpenDRIVE \u9ad8\u6e05 \u5730\u56fe \u3002 \u60a8 \u8d1f\u8d23 \u6839\u636e \u9700\u8981 \u89e3\u6790 \u548c \u5904\u7406 OpenDRIVE \u6620\u5c04 \u3002 \u8fd9\u4e9b \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u88ab \u4f20\u9012 \u5230 $ { LEADERBOARD _ ROOT } / LEADERBOARD / LEADERBOARD _ evaluator . py \uff0c \u4f5c\u4e3a \u6267\u884c \u4eff\u771f \u7684 \u5165\u53e3 \u70b9 \u3002 \u67e5\u770b leaderboard _ evaluator . py \uff0c \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u6267\u884c \u548c \u8bc4\u4f30 \u4ee3\u7406 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u521b\u5efa \u81ea\u5df1 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u65b0 \u4ee3\u7406 \u7684 \u5b9a\u4e49 \u59cb\u4e8e \u521b\u5efa \u4e00\u4e2a \u65b0\u7c7b \uff0c \u8be5\u7c7b \u7ee7\u627f \u81ea leaderboard . autoagents . autonomous _ agent . AutonomousAgent \u3002 \u521b\u5efa get _ entry _ point \u9996\u5148 \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u540d\u4e3a get _ entry _ point \u7684 \u51fd\u6570 \uff0c \u8be5 \u51fd\u6570 \u8fd4\u56de \u65b0\u7c7b \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u81ea\u52a8 \u5b9e\u4f8b \u5316 \u60a8 \u7684 \u4ee3\u7406 \u3002 from leaderboard . autoagents . autonomous _ agent import AutonomousAgent def get _ entry _ point ( ) : return ' MyAgent ' class MyAgent ( AutonomousAgent ) : ... \u91cd\u5199 setup \u65b9\u6cd5 \u5728 \u4ee3\u7406 \u7c7b\u4e2d \u91cd\u5199 setup \u65b9\u6cd5 \u3002 \u6b64 \u65b9\u6cd5 \u6267\u884c \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u521d\u59cb \u521d\u59cb\u5316 \u548c \u5b9a\u4e49 \u3002 \u6bcf\u6b21 \u521d\u59cb \u521d\u59cb\u5316 \u8def\u7531 \u65f6 \uff0c \u90fd \u4f1a \u81ea\u52a8 \u8c03\u7528 \u5b83 \u3002 \u5b83 \u53ef\u4ee5 \u63a5\u6536 \u6307\u5411 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u53ef\u9009 \u53c2\u6570 \u3002 \u7528\u6237 \u5e94 \u5206\u6790 \u6b64 \u6587\u4ef6 \u3002 \u81f3\u5c11 \uff0c \u60a8 \u9700\u8981 \u6307\u5b9a \u53c2\u4e0e \u7684 \u66f2\u76ee \u3002 from leaderboard . autoagents . autonomous _ agent import Track ... def setup ( self , path _ to _ conf _ file ) : self . track = Track . SENSORS # \u6b64 \u65b9\u6cd5 \u81f3\u5c11 \u8bbe\u7f6e \u6392\u884c \u6392\u884c\u699c \u6a21\u5f0f \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b SENSORS \u6ce8\u610f self . track \u5c5e\u6027 \u5e94\u8be5 \u662f \u679a\u4e3e \uff0c \u800c \u4e0d\u662f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u5b83 \u53ea\u80fd \u53d6 \u53ef\u80fd \u7684 \u503c Track . SENSORS \u6216 Track . MAP \u3002 \u91cd\u5199 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \u60a8 \u8fd8 \u5fc5\u987b \u8986\u76d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \uff0c \u8be5 \u65b9\u6cd5 \u5b9a\u4e49 \u4e86 \u60a8 \u7684 \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 def sensors ( self ) : sensors = [ { ' type ' : ' sensor . camera . rgb ' , ' id ' : ' Center ' , ' x ' : 0.7 , ' y ' : 0.0 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 0.0 , ' width ' : 300 , ' height ' : 200 , ' fov ' : 100 } , { ' type ' : ' sensor . lidar . ray _ cast ' , ' id ' : ' LIDAR ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 } , { ' type ' : ' sensor . other . radar ' , ' id ' : ' RADAR ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' fov ' : 30 } , { ' type ' : ' sensor . other . gnss ' , ' id ' : ' GPS ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 } , { ' type ' : ' sensor . other . imu ' , ' id ' : ' IMU ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 } , { ' type ' : ' sensor . opendrive _ map ' , ' id ' : ' OpenDRIVE ' , ' reading _ frequency ' : 1 } , { ' type ' : ' sensor . speedometer ' , ' id ' : ' Speed ' } , ] return sensors \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u90fd \u5177\u6709 \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u5728 agent _ wrapper . py \u4e2d \u8fdb\u884c \u68c0\u67e5 \u3002 \u8fd9\u6837 \u505a \u53ef\u4ee5 \u4f7f \u6240\u6709 \u56e2\u961f \u5728 \u4e00\u4e2a \u901a\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6846\u67b6 \u5185 \u8fdb\u884c \u7ade\u4e89 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u8868\u793a \u4e3a \u5b57\u5178 \uff0c \u5305\u542b \u4ee5\u4e0b \u5c5e\u6027 \uff1a type : \u8981 \u6dfb\u52a0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 id : \u5c06 \u88ab \u7ed9\u4e88 \u7a0d\u540e \u8981 \u8bbf\u95ee \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6807\u7b7e \u3002 other attributes : \u8fd9\u4e9b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u7684 \uff0c \u4f8b\u5982 \uff1a \u5916\u53c2 \u548c fov \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u76f8\u5bf9 \u5750\u6807 \u4e2d \u8bbe\u7f6e \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5185\u90e8 \u548c \u5916\u90e8 \u53c2\u6570 \uff08 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff09 \u3002 \u8bf7 \u6ce8\u610f \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff0c \u5373 \uff1a x - front \uff0c y - right \uff0c z - up \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \uff1a sensor . camera . rgb : \u6355\u6349 \u56fe\u50cf \u7684 \u666e\u901a \u76f8\u673a \u3002 sensor . lidar . ray _ cast : Velodyne 64 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 sensor . other . radar : \u8fdc\u7a0b \u96f7\u8fbe \uff08 \u9ad8\u8fbe 100 \u7c73 \uff09 \u3002 sensor . other . gnss : GPS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u6570\u636e \u3002 sensor . other . imu : 6 \u8f74 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u3002 sensor . opendrive _ map : \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u683c\u5f0f \u516c\u5f00 HD \u6620\u5c04 \u3002 sensor . speedometer : \u63d0\u4f9b \u8fd1\u4f3c \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u7684 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6ce8\u610f \u8bd5\u56fe \u8bbe\u7f6e \u53e6 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u62fc\u9519 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5bfc\u81f4 \u8bbe\u7f6e \u5931\u8d25 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u4efb\u4f55 \u4e00\u4e2a \u6765 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5806\u6808 \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u4fdd\u6301 \u9002\u5ea6 \u7684 \u8ba1\u7b97 \u8d1f\u8f7d \uff0c \u6211\u4eec \u5bf9 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 \u4ee3\u7406 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u91cf \u8bbe\u7f6e \u4e86 \u4ee5\u4e0b \u9650\u5236 \uff1a sensor . camera . rgb : 4 sensor . lidar . ray _ cast : 1 sensor . other . radar : 2 sensor . other . gnss : 1 sensor . other . imu : 1 sensor . opendrive _ map : 1 sensor . speedometer : 1 \u6ce8\u610f \u8bd5\u56fe \u8bbe\u7f6e \u8fc7\u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5355\u5143 \u4f1a \u5bfc\u81f4 \u8bbe\u7f6e \u5931\u8d25 \u3002 \u8fd8\u6709 \u4e00\u4e9b \u7a7a\u95f4 \u9650\u5236 \u9650\u5236 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u8f66\u8f86 \u4f53\u79ef \u5185 \u7684 \u653e\u7f6e \u3002 \u5982\u679c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4efb\u4f55 \u8f74 \uff08 \u4f8b\u5982 [ 3.1 , 0.0 , 0.0 ] \uff09 \u4e0a \u8ddd\u79bb \u5176\u7236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8d85\u8fc7 3 \u7c73 \uff0c \u5219 \u8bbe\u7f6e \u5c06 \u5931\u8d25 \u3002 \u91cd\u5199 run _ step \u65b9\u6cd5 \u6b64 \u65b9\u6cd5 \u5c06 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u8c03\u7528 \u4e00\u6b21 \uff0c \u4ee5 \u751f\u6210 carla . VehicleControl \u5bf9\u8c61 \u5f62\u5f0f \u7684 \u65b0 \u52a8\u4f5c \u3002 \u786e\u4fdd \u6b64 \u51fd\u6570 \u8fd4\u56de \u5c06 \u7528\u4e8e \u66f4\u65b0 \u4ee3\u7406 \u7684 \u63a7\u5236 \u5bf9\u8c61 \u3002 def run _ step ( self , input _ data , timestamp ) : control = self ._ do _ something _ smart ( input _ data , timestamp ) return control input _ data : \u5305\u542b \u6240 \u8bf7\u6c42 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u7684 \u5b57\u5178 \u3002 \u6570\u636e \u5df2\u7ecf \u5728 sensor _ interface . py \u4e0a \u8fdb\u884c \u4e86 \u5904\u7406 \u9884\u5904\u7406 \uff0c \u5e76 \u5c06 \u4ee5 numpy \u6570\u7ec4 \u7684 \u5f62\u5f0f \u7ed9\u51fa \u3002 \u8be5 \u5b57\u5178 \u7531 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \u4e2d \u5b9a\u4e49 \u7684 id \u7d22\u5f15 \u3002 timestamp : \u5f53\u524d \u4eff\u771f \u77ac\u95f4 \u7684 \u65f6\u95f4 \u6233 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u81ea\u6211 \u4ee3\u7406 \u4e3a \u8fbe\u5230 \u76ee\u7684 \u76ee\u7684\u5730 \u800c\u5e94 \u8d70 \u7684 \u8def\u7ebf \u3002 \u5229\u7528 self ._ global _ plan \u6210\u5458 \u8bbf\u95ee \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u8def\u7531 \u548c self ._ global _ plan _ world _ coord \u4f5c\u4e3a \u5176 \u4e16\u754c \u4f4d\u7f6e \u5bf9\u5e94 \u9879 \u3002 \u91cd\u5199 destroy \u65b9\u6cd5 \u5728 \u6bcf\u6761 \u8def\u7531 \u7ed3\u675f \u65f6 \uff0c \u5c06 \u8c03\u7528 destroy \u65b9\u6cd5 \uff0c \u5728 \u9700\u8981 \u6e05\u7406 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8986\u76d6 \u8be5 \u65b9\u6cd5 \u3002 \u4f8b\u5982 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u529f\u80fd \u64e6\u9664 \u7f51\u7edc \u4e2d \u4efb\u4f55 \u4e0d \u9700\u8981 \u7684 \u5185\u5b58 def destroy ( self ) : pass \u57fa\u4e8e \u4ee3\u7406 \u7684 ROS \u5982\u679c \u60a8 \u60f3 \u5c06 ROS \u4f5c\u4e3a \u4ee3\u7406 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u4ee5\u4e0b \u662f \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u5efa\u8bae \uff1a ROS Melodic : \u7531\u4e8e \u6392\u884c \u6392\u884c\u699c \u4ec5 \u4e0e Python 3 \u517c\u5bb9 \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 roslibpy \u5728 \u6392\u884c \u6392\u884c\u699c \u548c ROS \u5806\u6808 \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 ROS Noetic : \u7531\u4e8e ROS Noetic \u7684 \u76ee\u6807 \u662f Python3 \uff0c \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 rospy \u521b\u5efa \u4e00\u4e2a \u8282\u70b9 \u6765 \u4e0e \u60a8 \u7684 ROS \u5806\u6808 \u901a\u4fe1 \u6392\u884c \u6392\u884c\u699c \u3002 ROS2 Foxy : \u4e0e ROS Noetic \u7c7b\u4f3c \uff0c \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 rcpy \u4e0e \u60a8 \u7684 \u5806\u6808 \u5efa\u7acb \u901a\u4fe1 \u3002 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4ee3\u7406 \u6211\u4eec \u51c6\u5907 \u4e86 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u8def\u7ebf \u4f5c\u4e3a \u8d77\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u9014\u5f84 \u6765 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u4ee3\u7406 \u7684 \u6027\u80fd \u3002 \u53ef\u4ee5 \u5728 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 { LEADERBOARD _ ROOT } / data : routes _ training . xml : \u62df \u7528\u4f5c \u8bad\u7ec3 \u6570\u636e \u7684 50 \u6761 \u8def\u7ebf \uff08 112.8 \u516c\u91cc \uff09 \u3002 routes _ testing . xml : \u62df \u7528\u4f5c \u9a8c\u8bc1 \u6570\u636e \u7684 26 \u6761 \u8def\u7ebf \uff08 58.9 \u516c\u91cc \uff09 \u3002 \u57fa\u51c6 Brady Zhou \u5728 Learning by Cheating \u7684 \u57fa\u7840 \u4e0a \u521b\u9020 \u4e86 \u4e00\u5957 \u51fa\u8272 \u7684 starter kit \u3002","title":"\u5f00\u59cb \u4f7f\u7528 \u6392\u884c\u699c 2.0"},{"location":"leaderboard_get_started/#20","text":"\u7b14\u8bb0 \u672c\u9875 \u4fe1\u606f \u6d89\u53ca \u6700\u65b0 \u7248\u672c Leaderboard 2.0 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u4ee5\u524d \u7248\u672c \u7684 \u6392\u884c \u6392\u884c\u699c \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6392\u884c \u6392\u884c\u699c 1.0 \u5165\u95e8 \u8bf4\u660e \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5f00\u53d1 \u60a8 \u7684 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u60a8 \u9700\u8981 \u5b8c\u6210 \u4ee5\u4e0b \u8fc7\u7a0b \uff1a","title":"\u5f00\u59cb \u4f7f\u7528 \u6392\u884c\u699c 2.0"},{"location":"leaderboard_get_started/#_1","text":"","title":"\u7cfb\u7edf \u8bbe\u7f6e"},{"location":"leaderboard_get_started/#carla","text":"\u4e0b\u8f7d \u6253\u5305 \u7684 Carla \u6392\u884c \u6392\u884c\u699c \u7248\u672c \u3002 \u5c06 \u5305 \u89e3\u538b \u5230 \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4f8b\u5982 Carla \u3002 \u7b14\u8bb0 \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u66f4\u6539 $ { CARLA _ ROOT } \u53d8\u91cf \u4ee5 \u5bf9\u5e94 \u4e8e \u60a8 \u7684 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4e3a\u4e86 \u4f7f\u7528 Carla Python API \uff0c \u60a8 \u9700\u8981 \u5728 \u60a8 \u559c\u6b22 \u7684 \u73af\u5883 \u4e2d \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u3002 \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5bf9\u4e8e conda \uff0c \u9996\u5148 \u521b\u5efa \u4e00\u4e2a \u65b0 \u73af\u5883 \uff1a conda create - n py37 python = 3.7 conda activate py37 cd $ { CARLA _ ROOT } # \u6539\u53d8 \u60a8 \u7684 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 $ { CARLA _ ROOT } pip3 install - r PythonAPI / carla / requirements . txt \u7b14\u8bb0 Carla \u6392\u884c \u6392\u884c\u699c \u7248\u672c \u57fa\u4e8e 0.9 . 14 \u7248\u672c \u3002 \u5b83 \u8fd8 \u5177\u6709 \u5373\u5c06 \u53d1\u5e03 \u7684 0.9 . 14 \u7248\u672c \u7684 \u4e00\u4e9b \u529f\u80fd \uff0c \u4f8b\u5982 \u65b0 \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u56e0\u6b64 \uff0c \u5728 \u4f7f\u7528 API \u65f6\u8bf7 \u53c2\u8003 \u6700\u65b0 \u7684 \u6587\u6863 \u3002","title":"\u4e0b\u8f7d CARLA \u6392\u884c\u699c \u5305"},{"location":"leaderboard_get_started/#_2","text":"\u4e0b\u8f7d \u6392\u884c \u6392\u884c\u699c \u5b58\u50a8 \u5e93 Leaderboard - 2.0 \u5206\u652f \u3002 git clone - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / leaderboard . git \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u66f4\u6539 $ { LEADERBOARD _ ROOT } \u53d8\u91cf \u4ee5 \u5bf9\u5e94 \u4e8e \u60a8 \u7684 \u6392\u884c \u6392\u884c\u699c \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5b89\u88c5 \u6240 \u9700 \u7684 Python \u4f9d\u8d56 \u9879 \u3002 cd $ { LEADERBOARD _ ROOT } # \u6539\u53d8 \u60a8 \u7684 \u6392\u884c \u6392\u884c\u699c \u76ee\u5f55 \u6839\u76ee\u5f55 $ { LEADERBOARD _ ROOT } pip3 install - r requirements . txt \u4e0b\u8f7d Scenario Runner \u5b58\u50a8 \u5e93 \u6392\u884c \u6392\u884c\u699c - 2.0 \u5206\u652f \u3002 git clone - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / scenario _ runner . git \u5728 \u4ee5\u4e0b \u547d\u4ee4 \u4e2d \uff0c \u5c06 \u66f4 \u6539\u4e3a $ { SCENARIO _ RUNNER _ ROOT } \u4e0e \u60a8 \u7684 Scenario _ Runner \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u76f8\u5bf9 \u5e94 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 Python \u73af\u5883 \u5b89\u88c5 \u6240 \u9700 \u7684 Python \u4f9d\u8d56 \u9879 \u3002 cd $ { SCENARIO _ RUNNER _ ROOT } # \u6539\u53d8 \u60a8 \u7684 Scenario _ Runner \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 $ { SCENARIO _ RUNNER _ ROOT } pip3 install - r requirements . txt","title":"\u83b7\u53d6 \u6392\u884c\u699c \u548c \u573a\u666f \u8dd1\u8005"},{"location":"leaderboard_get_started/#ros","text":"\u9996\u5148 \uff0c \u4e0b\u8f7d \u5e76 \u5b89\u88c5 \u9002\u5f53 \u7684 ROS \u6216 ROS2 \u53d1\u884c \u53d1\u884c\u7248 \u3002 Leaderboard 2.0 \u652f\u6301 ROS Melodic \u3001 ROS Noetic \u548c ROS2 Foxy \u3002 \u7136\u540e \uff0c \u514b\u9686 \u5e76 \u6784\u5efa ROS \u6216 ROS2 \u7684 Carla ROS \u6865 \u5b58\u50a8 \u5e93 \u3002 \u786e\u4fdd leaderboard - 2.0 \u5728 \u514b\u9686 Carla ROS Bridge \u5b58\u50a8 \u5e93\u65f6 \u6307\u5b9a \u5206\u652f \uff1a git clone -- recurse - submodules - b leaderboard - 2.0 -- single - branch https : / / github . com / carla - simulator / ros - bridge","title":"\u57fa\u4e8e ROS \u7684 \u4ee3\u7406"},{"location":"leaderboard_get_started/#_3","text":"\u6211\u4eec \u9700\u8981 \u786e\u4fdd \u4e0d\u540c \u7684 \u6a21\u5757 \u53ef\u4ee5 \u627e\u5230 \u5f7c\u6b64 \u3002 ~ / . bashrc \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u6253\u5f00 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \uff1a gedit ~ / . bashrc \u7f16\u8f91 \u60a8 \u7684 ~ / . bashrc \u4e2a\u4eba \u8d44\u6599 \u4e2a\u4eba\u8d44\u6599 \uff0c \u6dfb\u52a0 \u4ee5\u4e0b \u5b9a\u4e49 \u3002 \u7f16\u8f91 \u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u6587\u4ef6 \u3002 export CARLA _ ROOT = PATH _ TO _ CARLA _ ROOT export SCENARIO _ RUNNER _ ROOT = PATH _ TO _ SCENARIO _ RUNNER export LEADERBOARD _ ROOT = PATH _ TO _ LEADERBOARD export PYTHONPATH = \" $ { CARLA _ ROOT } / PythonAPI / carla / \" : \" $ { SCENARIO _ RUNNER _ ROOT } \" : \" $ { LEADERBOARD _ ROOT } \" : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - 0.9 . 14 - py3.7 - linux - x86 _ 64 . egg \" : $ { PYTHONPATH } \u8bf7 \u8bb0\u4f4f . bashrc \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f \u8fd9\u4e9b \u66f4\u6539 \u751f\u6548 \uff1a source ~ / . bashrc","title":"\u5b9a\u4e49 \u73af\u5883\u53d8\u91cf"},{"location":"leaderboard_get_started/#_4","text":"","title":"\u521b\u5efa \u5e26\u6709 \u6392\u884c\u699c \u7684 \u81ea\u6cbb \u4ee3\u7406"},{"location":"leaderboard_get_started/#_5","text":"\u6392\u884c \u6392\u884c\u699c \u5c06 \u8d1f\u8d23 \u8fd0\u884c \u60a8 \u7684 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u5e76 \u8bc4\u4f30 \u5176 \u5728 \u591a\u6761 \u8def\u7ebf \u7684 \u4e0d\u540c \u4ea4\u901a \u60c5\u51b5 \u4e0b \u7684 \u884c\u4e3a \u3002 \u4e3a\u4e86 \u66f4\u597d \u5730 \u7406\u89e3 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u8ba9 \u6211\u4eec \u8fd0\u884c \u4e00\u4e2a \u57fa\u672c \u4ee3\u7406 \u3002 \u5728 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 cd $ { CARLA _ ROOT } . / CarlaUE4 . sh - quality - level = Epic - world - port = 2000 - resx = 800 - resy = 600 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 $ { LEADERBOARD _ ROOT } . \u867d\u7136 \u6392\u884c \u6392\u884c\u699c \u662f \u4f7f\u7528 leaderboard _ evaluator . py python \u811a\u672c \u8fd0\u884c \u7684 \uff0c \u4f46 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6570\u91cf \u53ef\u80fd \u4f1a \u8ba9 \u4f7f\u7528 \u7ec8\u7aef \u76f4\u63a5 \u6267\u884c \u6b64 \u64cd\u4f5c \u611f\u5230 \u975e\u5e38 \u4e0d \u8212\u670d \u3002 \u56e0\u6b64 \uff0c \u5efa\u8bae \u4f7f\u7528 bash \u811a\u672c \u3002 \u6392\u884c \u6392\u884c\u699c \u63d0\u4f9b \u7684 run _ leaderboard . sh \u811a\u672c \u6b63\u662f \u8fd9\u6837 \u505a \u7684 \u3002 \u8fd0\u884c \u811a\u672c \uff1a . / run _ leaderboard . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u8ba9 \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u63a7\u5236 \u4ee3\u7406 \u3002 \u6309\u7167 \u5f69\u8272 \u8def\u5f84 \u70b9 \u6307\u793a \u7684 \u8def\u7ebf \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u8be5 \u811a\u672c \u52a0\u8f7d Town 12 \u4e2d \u7684 \u4e24\u6761 \u8def\u7ebf \u4e24\u6761\u8def \u4e24\u6761\u8def\u7ebf \u3002 \u9075\u5faa \u8def\u7ebf \u5e76 \u9075\u5b88 \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \uff0c \u76f4\u5230 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u7b14\u8bb0 \u624b\u52a8 \u4e2d\u65ad \u6392\u884c \u6392\u884c\u699c \u5c06 \u62a2\u5148 \u505c\u6b62 \u8def\u7ebf \u4eff\u771f \uff0c \u81ea\u52a8 \u8fdb\u5165 \u4e0b \u4e00\u6761 \u8def\u7ebf \u3002","title":"\u6392\u884c\u699c \u7684 \u7b2c\u4e00\u6b65"},{"location":"leaderboard_get_started/#_6","text":"\u8fd0\u884c \u6d4b\u8bd5 \u65f6 \uff0c \u6211\u4eec \u8bbe\u7f6e \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53c2\u6570 \u3002 \u8ba9 \u6211\u4eec \u4e86\u89e3 \u4e00\u4e0b \u5b83\u4eec \u4ee5\u53ca \u5b83\u4eec \u5728 \u6392\u884c \u6392\u884c\u699c \u4e2d \u7684 \u4f5c\u7528 \u3002 ROUTES ( XML ) \u2014 \u5c06 \u7528\u4e8e \u4eff\u771f \u7684 \u8def\u7ebf \u96c6 \u3002 \u6bcf\u6761 \u8def\u7ebf \u90fd \u6709 \u4e00\u4e2a \u8d77\u70b9 \uff08 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8def\u5f84 \u70b9 \uff09 \u548c \u4e00\u4e2a \u7ec8\u70b9 \uff08 \u6700\u540e \u4e00\u4e2a \u8def\u5f84 \u70b9 \uff09 \u3002 \u6b64\u5916 \uff0c \u5b83\u4eec \u8fd8 \u53ef\u4ee5 \u5305\u542b \u5929\u6c14 \u6982\u51b5 \u6765 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 \u4e00\u4efd XML \u5305\u542b \u8bb8\u591a \u8def\u7531 \uff0c \u6bcf\u6761 \u8def\u7531 \u90fd \u6709 \u4e00\u4e2a ID \u3002 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u3001 \u6dfb\u52a0 \u548c \u5220\u9664 \u8def\u7ebf \u4ee5 \u8fdb\u884c \u57f9\u8bad \u548c \u9a8c\u8bc1 \u3002 \u6392\u884c \u6392\u884c\u699c \u9644\u5e26 \u4e86 \u4e00\u7ec4 \u7528\u4e8e \u8c03\u8bd5 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u7684 \u8def\u7ebf \u3002 \u7528\u4e8e \u5728\u7ebf \u8bc4\u4f30 \u7684 \u8def\u7ebf \u662f \u79d8\u5bc6 \u7684 \u3002 \u8be5 \u6587\u4ef6 \u8fd8 \u5305\u62ec \u5c06 \u5728 \u4eff\u771f \u4e2d \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u6bcf\u6761 \u8def\u7ebf \u90fd \u6709 \u81ea\u5df1 \u7684 \u4e00\u7ec4 \u573a\u666f \u3002 \u573a\u666f \u88ab \u5b9a\u4e49 \u4e3a \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7279\u5de5 \u5fc5\u987b \u514b\u670d \u8fd9\u4e9b \u573a\u666f \u624d\u80fd \u901a\u8fc7 \u6d4b\u8bd5 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u8bbf\u95ee \u4e00\u7ec4 \u9002\u7528 \u4e8e \u516c\u5171 \u57ce\u9547 \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u5b58\u5728 \u4f7f\u7528 \u4e0d\u540c \u53c2\u6570 \u5b9e\u4f8b \u5316 \u7684 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u573a\u666f \u3002 \u4ee5\u4e0b \u662f \u53ef\u7528 \u65b9\u6848 \u7684 \u5217\u8868 \u3002 REPETITIONS ( int ) \u2014 \u51fa\u4e8e \u7edf\u8ba1 \u76ee\u7684 \uff0c \u6bcf\u6761 \u8def\u7ebf \u91cd\u590d \u7684 \u6b21\u6570 \u3002 TEAM _ AGENT ( Python \u6a21\u5757 ) \u2014 \u4ee3\u7406 \u7684 Python \u6a21\u5757 \u7684 \u8def\u5f84 \u3002 \u521b\u5efa \u4ee3\u7406 \u7684 \u6b65\u9aa4 \u5c06 \u5728 \u4e0b \u4e00\u6b65 \u4e2d \u89e3\u91ca \u3002 \u5176\u4ed6 \u76f8\u5173 \u53c2\u6570 \u5982\u4e0b \u6240\u8ff0 \u3002 TEAM _ CONFIG \uff08 \u7531 \u7528\u6237 \u5b9a\u4e49 \uff09 \u2014 \u6240 \u63d0\u4f9b \u7684 \u4ee3\u7406 \u8bfb\u53d6 \u7684 \u4efb\u610f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u60a8 \u8d1f\u8d23 \u5728 \u4ee3\u7406 \u7c7b\u4e2d \u5b9a\u4e49 \u548c \u89e3\u6790 \u6b64 \u6587\u4ef6 \u3002 DEBUG _ CHALLENGE ( int ) \u2014 \u6307\u793a \u4eff\u771f \u671f\u95f4 \u662f\u5426 \u5e94 \u663e\u793a \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u7684 \u6807\u5fd7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5 \u53d8\u91cf \u672a \u8bbe\u7f6e ( 0 ) \uff0c \u8fd9 \u4e0d\u4f1a \u751f\u6210 \u8981 \u663e\u793a \u7684 \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 1 \u65f6 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u663e\u793a \u8981 \u9075\u5faa \u7684 \u53c2\u8003 \u8def\u7ebf \u3002 \u5982\u679c \u6b64 \u53d8\u91cf \u8bbe\u7f6e \u4e3a \u5927\u4e8e \u4efb\u4f55 \u503c \uff0c 1 \u5f15\u64ce \u5c06 \u6253\u5370 \u4eff\u771f \u7684 \u5b8c\u6574 \u72b6\u6001 \u4ee5 \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 CHECKPOINT _ ENDPOINT ( JSON ) \u2014 \u5c06 \u8bb0\u5f55 Leaderboard \u6307\u6807 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 RECORD _ PATH \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u2014 \u5c06 \u5b58\u50a8 Carla \u65e5\u5fd7 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b\u672a \u8bbe\u7f6e \u3002 RESUME \u2014 \u6307\u793a \u4eff\u771f \u662f\u5426 \u5e94\u4ece \u6700\u540e \u4e00\u6761 \u8def\u7ebf \u6062\u590d \u7684 \u6807\u5fd7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b\u672a \u8bbe\u7f6e \u3002 CHALLENGE _ TRACK _ CODENAME \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u2014 \u4ee3\u7406 \u6b63\u5728 \u7ade\u4e89 \u7684 \u8d5b\u9053 \u3002 \u6709 \u4e24\u4e2a \u53ef\u80fd \u7684 \u9009\u9879 \uff1a SENSORS \u548c MAP \u3002 \u8be5 SENSORS \u8d5b\u9053 \u5141\u8bb8 \u4f7f\u7528 \u591a\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u548c \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u3002 \u9664\u4e86 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e4b\u5916 \uff0c MAP \u8d5b\u9053 \u8fd8 \u5141\u8bb8 \u76f4\u63a5 \u8bbf\u95ee OpenDRIVE \u9ad8\u6e05 \u5730\u56fe \u3002 \u60a8 \u8d1f\u8d23 \u6839\u636e \u9700\u8981 \u89e3\u6790 \u548c \u5904\u7406 OpenDRIVE \u6620\u5c04 \u3002 \u8fd9\u4e9b \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u88ab \u4f20\u9012 \u5230 $ { LEADERBOARD _ ROOT } / LEADERBOARD / LEADERBOARD _ evaluator . py \uff0c \u4f5c\u4e3a \u6267\u884c \u4eff\u771f \u7684 \u5165\u53e3 \u70b9 \u3002 \u67e5\u770b leaderboard _ evaluator . py \uff0c \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u6267\u884c \u548c \u8bc4\u4f30 \u4ee3\u7406 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u4e86\u89e3 \u6392\u884c\u699c \u7ec4\u4ef6"},{"location":"leaderboard_get_started/#_7","text":"\u65b0 \u4ee3\u7406 \u7684 \u5b9a\u4e49 \u59cb\u4e8e \u521b\u5efa \u4e00\u4e2a \u65b0\u7c7b \uff0c \u8be5\u7c7b \u7ee7\u627f \u81ea leaderboard . autoagents . autonomous _ agent . AutonomousAgent \u3002","title":"\u521b\u5efa \u81ea\u5df1 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406"},{"location":"leaderboard_get_started/#get_entry_point","text":"\u9996\u5148 \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u540d\u4e3a get _ entry _ point \u7684 \u51fd\u6570 \uff0c \u8be5 \u51fd\u6570 \u8fd4\u56de \u65b0\u7c7b \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u81ea\u52a8 \u5b9e\u4f8b \u5316 \u60a8 \u7684 \u4ee3\u7406 \u3002 from leaderboard . autoagents . autonomous _ agent import AutonomousAgent def get _ entry _ point ( ) : return ' MyAgent ' class MyAgent ( AutonomousAgent ) : ...","title":"\u521b\u5efa get _ entry _ point"},{"location":"leaderboard_get_started/#setup","text":"\u5728 \u4ee3\u7406 \u7c7b\u4e2d \u91cd\u5199 setup \u65b9\u6cd5 \u3002 \u6b64 \u65b9\u6cd5 \u6267\u884c \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u521d\u59cb \u521d\u59cb\u5316 \u548c \u5b9a\u4e49 \u3002 \u6bcf\u6b21 \u521d\u59cb \u521d\u59cb\u5316 \u8def\u7531 \u65f6 \uff0c \u90fd \u4f1a \u81ea\u52a8 \u8c03\u7528 \u5b83 \u3002 \u5b83 \u53ef\u4ee5 \u63a5\u6536 \u6307\u5411 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u53ef\u9009 \u53c2\u6570 \u3002 \u7528\u6237 \u5e94 \u5206\u6790 \u6b64 \u6587\u4ef6 \u3002 \u81f3\u5c11 \uff0c \u60a8 \u9700\u8981 \u6307\u5b9a \u53c2\u4e0e \u7684 \u66f2\u76ee \u3002 from leaderboard . autoagents . autonomous _ agent import Track ... def setup ( self , path _ to _ conf _ file ) : self . track = Track . SENSORS # \u6b64 \u65b9\u6cd5 \u81f3\u5c11 \u8bbe\u7f6e \u6392\u884c \u6392\u884c\u699c \u6a21\u5f0f \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b SENSORS \u6ce8\u610f self . track \u5c5e\u6027 \u5e94\u8be5 \u662f \u679a\u4e3e \uff0c \u800c \u4e0d\u662f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u5b83 \u53ea\u80fd \u53d6 \u53ef\u80fd \u7684 \u503c Track . SENSORS \u6216 Track . MAP \u3002","title":"\u91cd\u5199 setup \u65b9\u6cd5"},{"location":"leaderboard_get_started/#_8","text":"\u60a8 \u8fd8 \u5fc5\u987b \u8986\u76d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \uff0c \u8be5 \u65b9\u6cd5 \u5b9a\u4e49 \u4e86 \u60a8 \u7684 \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 def sensors ( self ) : sensors = [ { ' type ' : ' sensor . camera . rgb ' , ' id ' : ' Center ' , ' x ' : 0.7 , ' y ' : 0.0 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 0.0 , ' width ' : 300 , ' height ' : 200 , ' fov ' : 100 } , { ' type ' : ' sensor . lidar . ray _ cast ' , ' id ' : ' LIDAR ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 } , { ' type ' : ' sensor . other . radar ' , ' id ' : ' RADAR ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' fov ' : 30 } , { ' type ' : ' sensor . other . gnss ' , ' id ' : ' GPS ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 } , { ' type ' : ' sensor . other . imu ' , ' id ' : ' IMU ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 } , { ' type ' : ' sensor . opendrive _ map ' , ' id ' : ' OpenDRIVE ' , ' reading _ frequency ' : 1 } , { ' type ' : ' sensor . speedometer ' , ' id ' : ' Speed ' } , ] return sensors \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u90fd \u5177\u6709 \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u5728 agent _ wrapper . py \u4e2d \u8fdb\u884c \u68c0\u67e5 \u3002 \u8fd9\u6837 \u505a \u53ef\u4ee5 \u4f7f \u6240\u6709 \u56e2\u961f \u5728 \u4e00\u4e2a \u901a\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6846\u67b6 \u5185 \u8fdb\u884c \u7ade\u4e89 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u8868\u793a \u4e3a \u5b57\u5178 \uff0c \u5305\u542b \u4ee5\u4e0b \u5c5e\u6027 \uff1a type : \u8981 \u6dfb\u52a0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 id : \u5c06 \u88ab \u7ed9\u4e88 \u7a0d\u540e \u8981 \u8bbf\u95ee \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6807\u7b7e \u3002 other attributes : \u8fd9\u4e9b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u7684 \uff0c \u4f8b\u5982 \uff1a \u5916\u53c2 \u548c fov \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u76f8\u5bf9 \u5750\u6807 \u4e2d \u8bbe\u7f6e \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5185\u90e8 \u548c \u5916\u90e8 \u53c2\u6570 \uff08 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff09 \u3002 \u8bf7 \u6ce8\u610f \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff0c \u5373 \uff1a x - front \uff0c y - right \uff0c z - up \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \uff1a sensor . camera . rgb : \u6355\u6349 \u56fe\u50cf \u7684 \u666e\u901a \u76f8\u673a \u3002 sensor . lidar . ray _ cast : Velodyne 64 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 sensor . other . radar : \u8fdc\u7a0b \u96f7\u8fbe \uff08 \u9ad8\u8fbe 100 \u7c73 \uff09 \u3002 sensor . other . gnss : GPS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u6570\u636e \u3002 sensor . other . imu : 6 \u8f74 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u3002 sensor . opendrive _ map : \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u683c\u5f0f \u516c\u5f00 HD \u6620\u5c04 \u3002 sensor . speedometer : \u63d0\u4f9b \u8fd1\u4f3c \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u7684 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6ce8\u610f \u8bd5\u56fe \u8bbe\u7f6e \u53e6 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u62fc\u9519 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5bfc\u81f4 \u8bbe\u7f6e \u5931\u8d25 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u4efb\u4f55 \u4e00\u4e2a \u6765 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5806\u6808 \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u4fdd\u6301 \u9002\u5ea6 \u7684 \u8ba1\u7b97 \u8d1f\u8f7d \uff0c \u6211\u4eec \u5bf9 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 \u4ee3\u7406 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u91cf \u8bbe\u7f6e \u4e86 \u4ee5\u4e0b \u9650\u5236 \uff1a sensor . camera . rgb : 4 sensor . lidar . ray _ cast : 1 sensor . other . radar : 2 sensor . other . gnss : 1 sensor . other . imu : 1 sensor . opendrive _ map : 1 sensor . speedometer : 1 \u6ce8\u610f \u8bd5\u56fe \u8bbe\u7f6e \u8fc7\u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5355\u5143 \u4f1a \u5bfc\u81f4 \u8bbe\u7f6e \u5931\u8d25 \u3002 \u8fd8\u6709 \u4e00\u4e9b \u7a7a\u95f4 \u9650\u5236 \u9650\u5236 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u8f66\u8f86 \u4f53\u79ef \u5185 \u7684 \u653e\u7f6e \u3002 \u5982\u679c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4efb\u4f55 \u8f74 \uff08 \u4f8b\u5982 [ 3.1 , 0.0 , 0.0 ] \uff09 \u4e0a \u8ddd\u79bb \u5176\u7236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8d85\u8fc7 3 \u7c73 \uff0c \u5219 \u8bbe\u7f6e \u5c06 \u5931\u8d25 \u3002","title":"\u91cd\u5199 \u4f20\u611f\u5668 \u65b9\u6cd5"},{"location":"leaderboard_get_started/#run_step","text":"\u6b64 \u65b9\u6cd5 \u5c06 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u8c03\u7528 \u4e00\u6b21 \uff0c \u4ee5 \u751f\u6210 carla . VehicleControl \u5bf9\u8c61 \u5f62\u5f0f \u7684 \u65b0 \u52a8\u4f5c \u3002 \u786e\u4fdd \u6b64 \u51fd\u6570 \u8fd4\u56de \u5c06 \u7528\u4e8e \u66f4\u65b0 \u4ee3\u7406 \u7684 \u63a7\u5236 \u5bf9\u8c61 \u3002 def run _ step ( self , input _ data , timestamp ) : control = self ._ do _ something _ smart ( input _ data , timestamp ) return control input _ data : \u5305\u542b \u6240 \u8bf7\u6c42 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u7684 \u5b57\u5178 \u3002 \u6570\u636e \u5df2\u7ecf \u5728 sensor _ interface . py \u4e0a \u8fdb\u884c \u4e86 \u5904\u7406 \u9884\u5904\u7406 \uff0c \u5e76 \u5c06 \u4ee5 numpy \u6570\u7ec4 \u7684 \u5f62\u5f0f \u7ed9\u51fa \u3002 \u8be5 \u5b57\u5178 \u7531 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65b9\u6cd5 \u4e2d \u5b9a\u4e49 \u7684 id \u7d22\u5f15 \u3002 timestamp : \u5f53\u524d \u4eff\u771f \u77ac\u95f4 \u7684 \u65f6\u95f4 \u6233 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u81ea\u6211 \u4ee3\u7406 \u4e3a \u8fbe\u5230 \u76ee\u7684 \u76ee\u7684\u5730 \u800c\u5e94 \u8d70 \u7684 \u8def\u7ebf \u3002 \u5229\u7528 self ._ global _ plan \u6210\u5458 \u8bbf\u95ee \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u8def\u7531 \u548c self ._ global _ plan _ world _ coord \u4f5c\u4e3a \u5176 \u4e16\u754c \u4f4d\u7f6e \u5bf9\u5e94 \u9879 \u3002","title":"\u91cd\u5199 run _ step \u65b9\u6cd5"},{"location":"leaderboard_get_started/#destroy","text":"\u5728 \u6bcf\u6761 \u8def\u7531 \u7ed3\u675f \u65f6 \uff0c \u5c06 \u8c03\u7528 destroy \u65b9\u6cd5 \uff0c \u5728 \u9700\u8981 \u6e05\u7406 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4ee3\u7406 \u53ef\u4ee5 \u8986\u76d6 \u8be5 \u65b9\u6cd5 \u3002 \u4f8b\u5982 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u529f\u80fd \u64e6\u9664 \u7f51\u7edc \u4e2d \u4efb\u4f55 \u4e0d \u9700\u8981 \u7684 \u5185\u5b58 def destroy ( self ) : pass","title":"\u91cd\u5199 destroy \u65b9\u6cd5"},{"location":"leaderboard_get_started/#ros_1","text":"\u5982\u679c \u60a8 \u60f3 \u5c06 ROS \u4f5c\u4e3a \u4ee3\u7406 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u4ee5\u4e0b \u662f \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u5efa\u8bae \uff1a ROS Melodic : \u7531\u4e8e \u6392\u884c \u6392\u884c\u699c \u4ec5 \u4e0e Python 3 \u517c\u5bb9 \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 roslibpy \u5728 \u6392\u884c \u6392\u884c\u699c \u548c ROS \u5806\u6808 \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 ROS Noetic : \u7531\u4e8e ROS Noetic \u7684 \u76ee\u6807 \u662f Python3 \uff0c \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 rospy \u521b\u5efa \u4e00\u4e2a \u8282\u70b9 \u6765 \u4e0e \u60a8 \u7684 ROS \u5806\u6808 \u901a\u4fe1 \u6392\u884c \u6392\u884c\u699c \u3002 ROS2 Foxy : \u4e0e ROS Noetic \u7c7b\u4f3c \uff0c \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 rcpy \u4e0e \u60a8 \u7684 \u5806\u6808 \u5efa\u7acb \u901a\u4fe1 \u3002","title":"\u57fa\u4e8e \u4ee3\u7406 \u7684 ROS"},{"location":"leaderboard_get_started/#_9","text":"\u6211\u4eec \u51c6\u5907 \u4e86 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u8def\u7ebf \u4f5c\u4e3a \u8d77\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u9014\u5f84 \u6765 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u4ee3\u7406 \u7684 \u6027\u80fd \u3002 \u53ef\u4ee5 \u5728 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 { LEADERBOARD _ ROOT } / data : routes _ training . xml : \u62df \u7528\u4f5c \u8bad\u7ec3 \u6570\u636e \u7684 50 \u6761 \u8def\u7ebf \uff08 112.8 \u516c\u91cc \uff09 \u3002 routes _ testing . xml : \u62df \u7528\u4f5c \u9a8c\u8bc1 \u6570\u636e \u7684 26 \u6761 \u8def\u7ebf \uff08 58.9 \u516c\u91cc \uff09 \u3002","title":"\u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4ee3\u7406"},{"location":"leaderboard_get_started/#_10","text":"Brady Zhou \u5728 Learning by Cheating \u7684 \u57fa\u7840 \u4e0a \u521b\u9020 \u4e86 \u4e00\u5957 \u51fa\u8272 \u7684 starter kit \u3002","title":"\u57fa\u51c6"},{"location":"leaderboard_submit/","text":"\u4e3a \u6392\u884c \u6392\u884c\u699c 2.0 \u7248 \u63d0\u4ea4 \u4ee3\u7406 \u7b14\u8bb0 \u5c06 \u60a8 \u7684 \u4ee3\u7406 \u63d0\u4ea4 \u7ed9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \uff0c \u5373 \u8868\u793a \u60a8 \u63a5\u53d7 \u4e86 \u4f7f\u7528 \u6761\u6b3e \u3002 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u63d0\u4ea4 Leaderboard 2.0 \u7248\u672c \u7684 \u4ee3\u7406 \uff0c \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Leaderboard1.0 \u7248\u672c \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u63d0\u4ea4 \u6307\u5357 \u3002 \u4e00\u822c \u6b65\u9aa4 \u4e3a\u4e86 \u521b\u5efa \u5e76 \u63d0\u4ea4 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u6392\u884c \u6392\u884c\u699c \u9879\u76ee \u548c scenario _ runner \u7684 \u526f\u672c \u3002 \u5982\u679c \u4e0d\u662f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u8bf7 \u5148 \u8bbf\u95ee \u201c \u5165\u95e8 \u201d \u90e8\u5206 \u3002 \u521b\u5efa \u4e00\u4e2a dockerfile \u6765 \u6784\u5efa \u60a8 \u7684 \u4ee3\u7406 \u4e3a\u4e86 \u8ba9 Carla \u6392\u884c \u6392\u884c\u699c \u8bc4\u4f30 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u9700\u8981 \u5c06 \u5176 \u5c01\u88c5 \u5728 Docker \u955c\u50cf \u4e2d \u3002 \u8981 \u60f3 \u6210\u529f \uff0c \u60a8 \u5fc5\u987b \u80fd\u591f \u5728 docker \u5185 \u8fd0\u884c \u5e26\u6709 \u6392\u884c \u6392\u884c\u699c \u7684 \u4ee3\u7406 \u3002 \u60a8 \u53ef\u4ee5 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u56fe\u50cf \uff0c \u4e5f \u53ef\u4ee5 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \uff1a \u5c06 \u60a8 \u7684 \u4ee3\u7801 \u6258\u7ba1 \u5728 $ { LEADERBOARD _ ROOT } \u5916\u9762 \u3002 \u6211\u4eec \u5c06 \u8be5 \u76ee\u5f55 \u79f0\u4e3a $ { TEAM _ CODE _ ROOT } \u5bf9\u4e8e \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \uff0c \u8fd9 \u5e94\u8be5 \u662f \u60a8 \u7684 ROS \u5de5\u4f5c \u533a \u3002 \u5229\u7528 \u5b58\u50a8 \u5e93\u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b Docker \u6587\u4ef6 \u4e4b\u4e00 \uff0c \u5176\u4e2d \u573a\u666f \u8fd0\u884c \u5668 \u548c \u6392\u884c \u6392\u884c\u699c \u6240 \u9700 \u7684 \u6240\u6709 \u4f9d\u8d56 \u9879\u5747 \u5df2 \u8bbe\u7f6e \u3002 \u57fa\u4e8e Python \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u793a\u4f8b Docker \uff0c \u800c \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4f7f\u7528 \u5176 Docker \u3002 \u5305\u62ec \u4ee3\u7406 \u6240 \u9700 \u7684 \u4f9d\u8d56 \u9879 \u548c \u9644\u52a0 \u5305 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5728 \u7531 \u6807\u7b7e \u201c BEGINNING OF USER COMMANDS \u201d \u548c \u201c END OF USER COMMANDS \u201d \u5206\u9694 \u7684 \u533a\u57df \u4e2d \u6dfb\u52a0 \u65b0 \u547d\u4ee4 \u3002 \u66f4\u65b0 \u53d8\u91cf TEAM _ AGENT \u4ee5 \u8bbe\u7f6e \u4ee3\u7406 \u6587\u4ef6 \u548c TEAM _ CONFIG \uff0c \u5982\u679c \u9700\u8981 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u4e0d\u8981 \u66f4\u6539 \u8def\u5f84 \u201c / workspace / team _ code \u201d \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u60f3\u8981 \u83b7\u53d6 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u90fd \u5728 \u5185\u90e8 \uff0c $ { HOME } / agent _ sources . sh \u56e0\u4e3a \u5728 \u5176\u4ed6 \u4efb\u4f55 \u5730\u65b9 \u6dfb\u52a0 \u7684 \u6e90 \u90fd \u4e0d\u4f1a \u88ab \u8c03\u7528 \u3002 \u5728 \u4e91\u4e2d \u8fd0\u884c \u4ee3\u7406 \u4e4b\u524d \u4f1a \u81ea\u52a8 \u83b7\u53d6 \u6b64 \u6587\u4ef6 \u3002 \u6ce8\u610f \u8bf7 \u6ce8\u610f \uff0c \u5f53 \u60a8 \u5c06 \u6761\u76ee \u63d0\u4ea4 \u5230 \u4e91\u65f6 \uff0c \u60a8 \u5bf9 \u6392\u884c \u6392\u884c\u699c \u6216 \u573a\u666f \u8fd0\u884c \u7a0b\u5e8f \u5b58\u50a8 \u5e93\u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u90fd \u5c06 \u88ab \u8986\u76d6 \u3002 \u5c06 \u60a8 \u7684 \u4ee3\u7406 \u6784\u5efa \u5230 docker \u955c\u50cf \u4e2d dockerfile \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c make _ docker . sh \u811a\u672c \u6765 \u521b\u5efa \u5b83 \uff0c \u8be5 \u811a\u672c \u4f1a \u5728 \u8be5 \u540d\u79f0 \u4e0b \u751f\u6210 docker \u6620\u50cf leaderboard - user \u3002 $ { LEADERBOARD _ ROOT } / scripts / make _ docker . sh [ -- ros - distro | - r ROS _ DISTRO ] \u8be5 \u811a\u672c \u786e\u4fdd \u6b63\u786e \u5b9a\u4e49 \u6240\u6709 \u6240 \u9700 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u7136\u540e \u5c06 \u5176 \u5185\u5bb9 \u590d\u5236 \u590d\u5236\u5230 \u521b\u5efa \u7684 Dockerfile \u4e2d \u3002 \u5efa\u8bae \u5c06 \u8fd9\u4e9b \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4f5c\u4e3a \u60a8 \u7684 $ { HOME } / . bashrc \u6587\u4ef6 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e76 \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a $ { CARLA _ ROOT } $ { SCENARIO _ RUNNER _ ROOT } $ { LEADERBOARD _ ROOT } $ { TEAM _ CODE _ ROOT } $ { ROS _ DISTRO } \uff08 \u4ec5 ROS \u4ee3\u7406 \u9700\u8981 \uff09 \u8bf7 \u968f\u610f \u8c03\u6574 \u6b64 \u811a\u672c \u4ee5 \u590d\u5236 \u60a8 \u8ba4\u4e3a \u5408\u9002 \u7684 \u5176\u4ed6 \u6587\u4ef6 \u548c \u8d44\u6e90 \u3002 \u6ce8\u610f \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u672c\u5730 \u8fd0\u884c \u6392\u884c \u6392\u884c\u699c \u6765 \u6d4b\u8bd5 \u60a8 \u7684 docker \u6620\u50cf \u6211\u4eec \u8fd8 \u60f3 \u91cd\u70b9 \u4ecb\u7ecd \u6392\u884c \u6392\u884c\u699c \u4ee3\u7406 \u5b58\u50a8 \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u591a\u4e2a \u65e8\u5728 \u4e0e Leaderboard 2.0 \u914d\u5408 \u4f7f\u7528 \u7684 \u4ee3\u7406 \uff0c \u4ee5\u53ca \u5c06 \u5b83\u4eec \u5c01\u88c5 \u5728 Docker \u4e2d\u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 \u5728 Eval AI \u6ce8\u518c \u65b0 \u7528\u6237 \u6211\u4eec Eval AI \u7684 \u5408\u4f5c \u4f19\u4f34 \u5408\u4f5c\u4f19\u4f34 \u5f00\u53d1 \u4e86 \u6392\u884c \u6392\u884c\u699c \u7684 \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \u3002 \u8981 \u63d0\u4ea4 \u5185\u5bb9 \uff0c \u60a8 \u9700\u8981 \u5728 \u7f51\u7ad9 \u4e0a \u6ce8\u518c \u7528\u6237 \u3002 \u6ce8\u610f \u8bf7 \u52a1\u5fc5 \u586b\u5199 \u60a8 \u7684 \u7528\u6237 \u96b6\u5c5e \u5173\u7cfb \uff0c \u5426\u5219 \u60a8 \u53ef\u80fd \u4e0d\u4f1a \u88ab \u63a5\u53d7 \u53c2\u52a0 \u6311\u6218 \u3002 \u521b\u5efa \u65b0 \u56e2\u961f \u5728 Eval AI \u6ce8\u518c \u7528\u6237 \u540e \uff0c \u901a\u8fc7 \u5355\u51fb \u201c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u56e2\u961f \u201d \u90e8\u5206 \u521b\u5efa \u4e00\u4e2a \u65b0 \u56e2\u961f \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u9700\u8981 \u5728 Carla \u6392\u884c \u6392\u884c\u699c 2.0 \u4e2d \u6ce8\u518c \u4e00\u4e2a \u56e2\u961f \u3002 AlphaDrive UI \u4e2d \u7684 \u56e2\u961f \u521b\u5efa \u5c4f\u5e55 \u3002 \u7533\u8bf7 \u52a0\u5165 \u7533\u8bf7\u52a0\u5165 Carla \u6392\u884c \u6392\u884c\u699c \u8f6c \u81f3 \u201c \u6240\u6709 \u6311\u6218 \u201d \u90e8\u5206 \u5e76 \u627e\u5230 Carla \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \uff0c \u6216 \u4f7f\u7528 \u6b64 \u94fe\u63a5 \u3002 \u9009\u62e9 \u201c \u53c2\u4e0e \u201d \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u53c2\u4e0e \u56e2\u961f \u6765 \u7533\u8bf7 \u6311\u6218 \u3002 \u60a8 \u9700\u8981 \u7b49\u5f85 Carla \u6392\u884c \u6392\u884c\u699c \u7ba1\u7406 \u7ba1\u7406\u5458 \u9a8c\u8bc1 \u60a8 \u7684 \u56e2\u961f \u3002 \u4e00\u65e6 \u60a8 \u7684 \u56e2\u961f \u901a\u8fc7 \u9a8c\u8bc1 \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u63d0\u4ea4 \u3002 \u57fa\u51c6 \u90e8\u5206 \u3002 \u63d0\u4ea4 \u60a8 \u7684 \u610f\u89c1 \u4e00\u65e6 \u60a8 \u7684 \u56e2\u961f \u7ecf\u8fc7 \u9a8c\u8bc1 \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u63d0\u4ea4 \u3002 \u5728 \u201c \u6982\u8ff0 \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u4e00\u822c \u4fe1\u606f \uff0c \u8bf7 \u524d\u5f80 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u8fdb\u884c \u63d0\u4ea4 \u3002 \u60a8 \u5c06 \u5728 \u90a3\u91cc \u627e\u5230 \u63d0\u4ea4 \u8bf4\u660e \u3002 \u60a8 \u9700\u8981 \u4f7f\u7528 pip \u5b89\u88c5 EvalAI CLI \uff1a pip install evalai \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u901a\u8fc7 \u4ee4\u724c \u6765 \u8bc6\u522b \u60a8 \u7684 \u7528\u6237 \uff1a evalai set _ token < token > \u60a8 \u53ef\u4ee5 \u4ece EvalAI \u7f51\u7ad9 \u7684 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u68c0\u7d22 \u60a8 \u7684 \u4ee4\u724c \u3002 \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4ece \u63d0\u4ea4 \u8bf4\u660e \u4e2d \u590d\u5236 \u5e76 \u7c98\u8d34 \u547d\u4ee4 \uff1a CLI \u63d0\u4ea4 \u8bf4\u660e \u3002 \u6ce8\u610f \u8be5 \u4ee4\u724c \u662f \u7279\u5b9a \u4e8e \u60a8 \u7684 \u7528\u6237 \u7684 \uff0c \u6bcf\u4e2a \u7528\u6237 \u90fd \u4f1a \u5728 \u7f51\u7ad9 \u7684 \u6b64 \u90e8\u5206 \u4e2d \u770b\u5230 \u4e0d\u540c \u7684 \u4ee4\u724c \u3002 \u4e0d\u8981 \u5171\u4eab \u4ee4\u724c \uff0c \u5426\u5219 \u63d0\u4ea4 \u4f5c\u8005 \u5c06\u4f1a \u4ea7\u751f \u6df7\u6dc6 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u63a8\u9001 Docker \u955c\u50cf \uff1a evalai push < image > : < tag > -- phase < phase _ name > \u60a8 \u53ef\u4ee5 \u5728 \u56db\u4e2a \u8f68\u8ff9 \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff08 \u5728 EvalAI \u7f51\u7ad9 \u4e2d \u79f0\u4e3a \u9636\u6bb5 \uff09 \uff1a \u6392\u884c \u6392\u884c\u699c 2.0 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6392\u884c \u6392\u884c\u699c 2.0 - \u5730\u56fe \u6392\u884c \u6392\u884c\u699c 1.0 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6392\u884c \u6392\u884c\u699c 1.0 - \u5730\u56fe \u5bf9\u4e8e \u6392\u884c \u6392\u884c\u699c 2.0 \u8d5b\u9053 \uff0c \u60a8 \u5fc5\u987b \u9996\u5148 \u5b8c\u6210 \u76f8\u5e94 \u7684 \u8d44\u683c \u4efb\u52a1 \uff1a \u6392\u884c \u6392\u884c\u699c 2.0 - SENSORS \u9884\u9009 \u9884\u9009\u8d5b \u8d5b\u9053 \u6392\u884c \u6392\u884c\u699c 2.0 - MAP \u9884\u9009 \u9884\u9009\u8d5b \u8d5b\u9053 \u6ce8\u610f \u5728 \u6d89\u53ca \u6392\u884c \u6392\u884c\u699c \u7684 \u5e74\u5ea6 \u6bd4\u8d5b \u671f\u95f4 \uff0c \u67d0\u4e9b \u8d5b\u9053 \u53ef\u80fd \u4f1a \u6682\u65f6 \u5173\u95ed \u3002 \u8bf7 \u5bc6\u5207 \u5173\u6ce8 \u6392\u884c \u6392\u884c\u699c \u7f51\u7ad9 \u548c Discord \u8bba\u575b \uff0c \u4e86\u89e3 \u8d5b\u9053 \u4f55\u65f6 \u53ef\u80fd \u5173\u95ed \u63d0\u4ea4 \u3002 \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4ece \u4ee5\u4e0b \u90e8\u5206 \u590d\u5236 \u5e76 \u7c98\u8d34 \uff0c \u4ee5 \u786e\u4fdd \u63d0\u4ea4 \u5230 \u6b63\u786e \u7684 \u8f68\u9053 \uff0c \u5e76 \u5c06 < image > \u548c \u66ff\u6362 < tag > \u4e3a \u9002\u5408 \u60a8 \u7684 Docker \u6620\u50cf \u7684 \u503c \uff1a \u8981 \u63d0\u4ea4 \u5230 \u6bcf\u4e2a \u8f68\u8ff9 \u7684 CLI \u547d\u4ee4 \u3002 \u68c0\u67e5 \u60a8 \u63d0\u4ea4 \u7684 \u6570\u636e \u521b\u5efa \u63d0\u4ea4 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u8f6c\u5230 \u6b64 My Submissions \u90e8\u5206 \u67e5\u770b \u6240\u6709 \u63d0\u4ea4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u72b6\u6001 \u663e\u793a \u63d0\u4ea4 \u72b6\u6001 \u7684 \u9ad8\u7ea7 \u8bf4\u660e \u3002 \u6240\u6709 \u63d0\u4ea4 \u90fd \u4ece \u72b6\u6001 \u5f00\u59cb \uff0c \u4e00\u65e6 \u5728 \u540e \u7aef \u5f00\u59cb \u8fd0\u884c \u5f00\u59cb\u8fd0\u884c \uff0c SUBMITTED \u5c31 \u4f1a \u66f4 \u6539\u4e3a \u3002 \u5b8c\u6210 \u540e \uff0c \u5982\u679c \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u5b83 \u5c06 \u66f4 \u6539\u4e3a PARTIALLY _ EVALUATED \uff0c \u6216\u8005 \u5982\u679c \u53d1\u751f \u751f\u610f \u610f\u5916 \u53d1\u751f\u610f\u5916 \u60c5\u51b5 \uff0c \u5219 \u66f4 \u6539\u4e3a FINISHEDFAILED \u3002 \u5931\u8d25 \u7684 \u63d0\u4ea4 \u53ef\u4ee5 \u6062\u590d \uff0c \u8fd9 \u5c06 \u7ee7\u7eed \u63d0\u4ea4 \uff0c \u800c \u4e0d \u91cd\u590d \u5df2\u7ecf \u5b8c\u6210 \u7684 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u5c06 \u5177\u6709 RESUMED \u72b6\u6001 \uff0c \u800c \u4e0d\u662f SUBMITTED \u76f4\u5230 \u5b83\u4eec \u5f00\u59cb \u8fd0\u884c \u5f00\u59cb\u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u968f\u65f6 \u53d6\u6d88 \u63d0\u4ea4 \u3001 \u505c\u6b62 \u63d0\u4ea4 \u5e76 \u5c06 \u5176 \u72b6\u6001 \u66f4 \u6539\u4e3a CANCELLED \u3002 \u4efb\u4f55 \u63d0\u4ea4 \u90fd \u53ef\u4ee5 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4f7f\u7528 \u76f8\u540c \u63d0\u4ea4 \u7684 docker \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u63d0\u4ea4 \u3002 \u5982\u679c \u63d0\u4ea4 \u6b63\u5728 \u8fd0\u884c \uff0c \u5b83 \u5c06 \u81ea\u52a8 \u53d6\u6d88 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u63d0\u4ea4 \u7684 \u7ed3\u679c \uff0c \u8bf7 \u8bbf\u95ee Stdout file \u63d0\u4f9b \u7684 \u94fe\u63a5 \u3002 \u8be5 \u6587\u4ef6 \u5305\u542b \u6709\u5173 \u63d0\u4ea4 \u7684 \u4e00\u4e9b \u4e00\u822c \u4fe1\u606f \uff0c \u5305\u62ec \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u8def\u7ebf \u8fdb\u5ea6 \u548c \u6700\u7ec8 \u7ed3\u679c \uff0c \u4ee5\u53ca \u6bcf\u6761 \u8def\u7ebf \u7684 \u72b6\u6001 \u548c \u6027\u80fd \u7684 \u672f\u8bed \u672f\u8bed\u8868 \u3002 \u6700\u540e \uff0c \u5982\u679c \u60a8 \u60f3 \u516c\u5f00 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \uff0c \u8bf7 \u9009\u4e2d \u8be5 Show on Leaderboard \u6846 \uff0c \u5b83 \u73b0\u5728 \u5c06 \u663e\u793a \u5728 Leaderboard \u6311\u6218 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u968f\u610f \u7f16\u8f91 \u63d0\u4ea4 \u5185\u5bb9 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u65b9\u6cd5 \u540d\u79f0 \u3001 \u63cf\u8ff0 \u4ee5\u53ca \u9879\u76ee \u6216 \u51fa\u7248 \u51fa\u7248\u7269 \u7684 URL \u7684 \u4efb\u4f55 \u4fe1\u606f \u3002","title":"\u4e3a \u6392\u884c\u699c 2.0 \u7248 \u63d0\u4ea4 \u4ee3\u7406"},{"location":"leaderboard_submit/#20","text":"\u7b14\u8bb0 \u5c06 \u60a8 \u7684 \u4ee3\u7406 \u63d0\u4ea4 \u7ed9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6392\u884c \u6392\u884c\u699c \uff0c \u5373 \u8868\u793a \u60a8 \u63a5\u53d7 \u4e86 \u4f7f\u7528 \u6761\u6b3e \u3002 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u63d0\u4ea4 Leaderboard 2.0 \u7248\u672c \u7684 \u4ee3\u7406 \uff0c \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Leaderboard1.0 \u7248\u672c \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u63d0\u4ea4 \u6307\u5357 \u3002","title":"\u4e3a \u6392\u884c\u699c 2.0 \u7248 \u63d0\u4ea4 \u4ee3\u7406"},{"location":"leaderboard_submit/#_1","text":"\u4e3a\u4e86 \u521b\u5efa \u5e76 \u63d0\u4ea4 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u6392\u884c \u6392\u884c\u699c \u9879\u76ee \u548c scenario _ runner \u7684 \u526f\u672c \u3002 \u5982\u679c \u4e0d\u662f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u8bf7 \u5148 \u8bbf\u95ee \u201c \u5165\u95e8 \u201d \u90e8\u5206 \u3002 \u521b\u5efa \u4e00\u4e2a dockerfile \u6765 \u6784\u5efa \u60a8 \u7684 \u4ee3\u7406 \u4e3a\u4e86 \u8ba9 Carla \u6392\u884c \u6392\u884c\u699c \u8bc4\u4f30 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u9700\u8981 \u5c06 \u5176 \u5c01\u88c5 \u5728 Docker \u955c\u50cf \u4e2d \u3002 \u8981 \u60f3 \u6210\u529f \uff0c \u60a8 \u5fc5\u987b \u80fd\u591f \u5728 docker \u5185 \u8fd0\u884c \u5e26\u6709 \u6392\u884c \u6392\u884c\u699c \u7684 \u4ee3\u7406 \u3002 \u60a8 \u53ef\u4ee5 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u56fe\u50cf \uff0c \u4e5f \u53ef\u4ee5 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \uff1a \u5c06 \u60a8 \u7684 \u4ee3\u7801 \u6258\u7ba1 \u5728 $ { LEADERBOARD _ ROOT } \u5916\u9762 \u3002 \u6211\u4eec \u5c06 \u8be5 \u76ee\u5f55 \u79f0\u4e3a $ { TEAM _ CODE _ ROOT } \u5bf9\u4e8e \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \uff0c \u8fd9 \u5e94\u8be5 \u662f \u60a8 \u7684 ROS \u5de5\u4f5c \u533a \u3002 \u5229\u7528 \u5b58\u50a8 \u5e93\u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b Docker \u6587\u4ef6 \u4e4b\u4e00 \uff0c \u5176\u4e2d \u573a\u666f \u8fd0\u884c \u5668 \u548c \u6392\u884c \u6392\u884c\u699c \u6240 \u9700 \u7684 \u6240\u6709 \u4f9d\u8d56 \u9879\u5747 \u5df2 \u8bbe\u7f6e \u3002 \u57fa\u4e8e Python \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u793a\u4f8b Docker \uff0c \u800c \u57fa\u4e8e ROS \u7684 \u4ee3\u7406 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4f7f\u7528 \u5176 Docker \u3002 \u5305\u62ec \u4ee3\u7406 \u6240 \u9700 \u7684 \u4f9d\u8d56 \u9879 \u548c \u9644\u52a0 \u5305 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5728 \u7531 \u6807\u7b7e \u201c BEGINNING OF USER COMMANDS \u201d \u548c \u201c END OF USER COMMANDS \u201d \u5206\u9694 \u7684 \u533a\u57df \u4e2d \u6dfb\u52a0 \u65b0 \u547d\u4ee4 \u3002 \u66f4\u65b0 \u53d8\u91cf TEAM _ AGENT \u4ee5 \u8bbe\u7f6e \u4ee3\u7406 \u6587\u4ef6 \u548c TEAM _ CONFIG \uff0c \u5982\u679c \u9700\u8981 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u8fdb\u884c \u521d\u59cb \u521d\u59cb\u5316 \u3002 \u4e0d\u8981 \u66f4\u6539 \u8def\u5f84 \u201c / workspace / team _ code \u201d \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u60f3\u8981 \u83b7\u53d6 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u90fd \u5728 \u5185\u90e8 \uff0c $ { HOME } / agent _ sources . sh \u56e0\u4e3a \u5728 \u5176\u4ed6 \u4efb\u4f55 \u5730\u65b9 \u6dfb\u52a0 \u7684 \u6e90 \u90fd \u4e0d\u4f1a \u88ab \u8c03\u7528 \u3002 \u5728 \u4e91\u4e2d \u8fd0\u884c \u4ee3\u7406 \u4e4b\u524d \u4f1a \u81ea\u52a8 \u83b7\u53d6 \u6b64 \u6587\u4ef6 \u3002 \u6ce8\u610f \u8bf7 \u6ce8\u610f \uff0c \u5f53 \u60a8 \u5c06 \u6761\u76ee \u63d0\u4ea4 \u5230 \u4e91\u65f6 \uff0c \u60a8 \u5bf9 \u6392\u884c \u6392\u884c\u699c \u6216 \u573a\u666f \u8fd0\u884c \u7a0b\u5e8f \u5b58\u50a8 \u5e93\u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u90fd \u5c06 \u88ab \u8986\u76d6 \u3002","title":"\u4e00\u822c \u6b65\u9aa4"},{"location":"leaderboard_submit/#docker","text":"dockerfile \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c make _ docker . sh \u811a\u672c \u6765 \u521b\u5efa \u5b83 \uff0c \u8be5 \u811a\u672c \u4f1a \u5728 \u8be5 \u540d\u79f0 \u4e0b \u751f\u6210 docker \u6620\u50cf leaderboard - user \u3002 $ { LEADERBOARD _ ROOT } / scripts / make _ docker . sh [ -- ros - distro | - r ROS _ DISTRO ] \u8be5 \u811a\u672c \u786e\u4fdd \u6b63\u786e \u5b9a\u4e49 \u6240\u6709 \u6240 \u9700 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u7136\u540e \u5c06 \u5176 \u5185\u5bb9 \u590d\u5236 \u590d\u5236\u5230 \u521b\u5efa \u7684 Dockerfile \u4e2d \u3002 \u5efa\u8bae \u5c06 \u8fd9\u4e9b \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4f5c\u4e3a \u60a8 \u7684 $ { HOME } / . bashrc \u6587\u4ef6 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e76 \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a $ { CARLA _ ROOT } $ { SCENARIO _ RUNNER _ ROOT } $ { LEADERBOARD _ ROOT } $ { TEAM _ CODE _ ROOT } $ { ROS _ DISTRO } \uff08 \u4ec5 ROS \u4ee3\u7406 \u9700\u8981 \uff09 \u8bf7 \u968f\u610f \u8c03\u6574 \u6b64 \u811a\u672c \u4ee5 \u590d\u5236 \u60a8 \u8ba4\u4e3a \u5408\u9002 \u7684 \u5176\u4ed6 \u6587\u4ef6 \u548c \u8d44\u6e90 \u3002 \u6ce8\u610f \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u672c\u5730 \u8fd0\u884c \u6392\u884c \u6392\u884c\u699c \u6765 \u6d4b\u8bd5 \u60a8 \u7684 docker \u6620\u50cf \u6211\u4eec \u8fd8 \u60f3 \u91cd\u70b9 \u4ecb\u7ecd \u6392\u884c \u6392\u884c\u699c \u4ee3\u7406 \u5b58\u50a8 \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u591a\u4e2a \u65e8\u5728 \u4e0e Leaderboard 2.0 \u914d\u5408 \u4f7f\u7528 \u7684 \u4ee3\u7406 \uff0c \u4ee5\u53ca \u5c06 \u5b83\u4eec \u5c01\u88c5 \u5728 Docker \u4e2d\u6240 \u9700 \u7684 \u6587\u4ef6 \u3002","title":"\u5c06 \u60a8 \u7684 \u4ee3\u7406 \u6784\u5efa \u5230 docker \u955c\u50cf \u4e2d"},{"location":"leaderboard_submit/#eval-ai","text":"\u6211\u4eec Eval AI \u7684 \u5408\u4f5c \u4f19\u4f34 \u5408\u4f5c\u4f19\u4f34 \u5f00\u53d1 \u4e86 \u6392\u884c \u6392\u884c\u699c \u7684 \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \u3002 \u8981 \u63d0\u4ea4 \u5185\u5bb9 \uff0c \u60a8 \u9700\u8981 \u5728 \u7f51\u7ad9 \u4e0a \u6ce8\u518c \u7528\u6237 \u3002 \u6ce8\u610f \u8bf7 \u52a1\u5fc5 \u586b\u5199 \u60a8 \u7684 \u7528\u6237 \u96b6\u5c5e \u5173\u7cfb \uff0c \u5426\u5219 \u60a8 \u53ef\u80fd \u4e0d\u4f1a \u88ab \u63a5\u53d7 \u53c2\u52a0 \u6311\u6218 \u3002","title":"\u5728 Eval AI \u6ce8\u518c \u65b0 \u7528\u6237"},{"location":"leaderboard_submit/#_2","text":"\u5728 Eval AI \u6ce8\u518c \u7528\u6237 \u540e \uff0c \u901a\u8fc7 \u5355\u51fb \u201c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u56e2\u961f \u201d \u90e8\u5206 \u521b\u5efa \u4e00\u4e2a \u65b0 \u56e2\u961f \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u9700\u8981 \u5728 Carla \u6392\u884c \u6392\u884c\u699c 2.0 \u4e2d \u6ce8\u518c \u4e00\u4e2a \u56e2\u961f \u3002 AlphaDrive UI \u4e2d \u7684 \u56e2\u961f \u521b\u5efa \u5c4f\u5e55 \u3002","title":"\u521b\u5efa \u65b0 \u56e2\u961f"},{"location":"leaderboard_submit/#carla","text":"\u8f6c \u81f3 \u201c \u6240\u6709 \u6311\u6218 \u201d \u90e8\u5206 \u5e76 \u627e\u5230 Carla \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \uff0c \u6216 \u4f7f\u7528 \u6b64 \u94fe\u63a5 \u3002 \u9009\u62e9 \u201c \u53c2\u4e0e \u201d \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u53c2\u4e0e \u56e2\u961f \u6765 \u7533\u8bf7 \u6311\u6218 \u3002 \u60a8 \u9700\u8981 \u7b49\u5f85 Carla \u6392\u884c \u6392\u884c\u699c \u7ba1\u7406 \u7ba1\u7406\u5458 \u9a8c\u8bc1 \u60a8 \u7684 \u56e2\u961f \u3002 \u4e00\u65e6 \u60a8 \u7684 \u56e2\u961f \u901a\u8fc7 \u9a8c\u8bc1 \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u63d0\u4ea4 \u3002 \u57fa\u51c6 \u90e8\u5206 \u3002","title":"\u7533\u8bf7\u52a0\u5165 Carla \u6392\u884c\u699c"},{"location":"leaderboard_submit/#_3","text":"\u4e00\u65e6 \u60a8 \u7684 \u56e2\u961f \u7ecf\u8fc7 \u9a8c\u8bc1 \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u63d0\u4ea4 \u3002 \u5728 \u201c \u6982\u8ff0 \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u4e00\u822c \u4fe1\u606f \uff0c \u8bf7 \u524d\u5f80 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u8fdb\u884c \u63d0\u4ea4 \u3002 \u60a8 \u5c06 \u5728 \u90a3\u91cc \u627e\u5230 \u63d0\u4ea4 \u8bf4\u660e \u3002 \u60a8 \u9700\u8981 \u4f7f\u7528 pip \u5b89\u88c5 EvalAI CLI \uff1a pip install evalai \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u901a\u8fc7 \u4ee4\u724c \u6765 \u8bc6\u522b \u60a8 \u7684 \u7528\u6237 \uff1a evalai set _ token < token > \u60a8 \u53ef\u4ee5 \u4ece EvalAI \u7f51\u7ad9 \u7684 \u201c \u63d0\u4ea4 \u201d \u90e8\u5206 \u68c0\u7d22 \u60a8 \u7684 \u4ee4\u724c \u3002 \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4ece \u63d0\u4ea4 \u8bf4\u660e \u4e2d \u590d\u5236 \u5e76 \u7c98\u8d34 \u547d\u4ee4 \uff1a CLI \u63d0\u4ea4 \u8bf4\u660e \u3002 \u6ce8\u610f \u8be5 \u4ee4\u724c \u662f \u7279\u5b9a \u4e8e \u60a8 \u7684 \u7528\u6237 \u7684 \uff0c \u6bcf\u4e2a \u7528\u6237 \u90fd \u4f1a \u5728 \u7f51\u7ad9 \u7684 \u6b64 \u90e8\u5206 \u4e2d \u770b\u5230 \u4e0d\u540c \u7684 \u4ee4\u724c \u3002 \u4e0d\u8981 \u5171\u4eab \u4ee4\u724c \uff0c \u5426\u5219 \u63d0\u4ea4 \u4f5c\u8005 \u5c06\u4f1a \u4ea7\u751f \u6df7\u6dc6 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u63a8\u9001 Docker \u955c\u50cf \uff1a evalai push < image > : < tag > -- phase < phase _ name > \u60a8 \u53ef\u4ee5 \u5728 \u56db\u4e2a \u8f68\u8ff9 \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff08 \u5728 EvalAI \u7f51\u7ad9 \u4e2d \u79f0\u4e3a \u9636\u6bb5 \uff09 \uff1a \u6392\u884c \u6392\u884c\u699c 2.0 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6392\u884c \u6392\u884c\u699c 2.0 - \u5730\u56fe \u6392\u884c \u6392\u884c\u699c 1.0 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6392\u884c \u6392\u884c\u699c 1.0 - \u5730\u56fe \u5bf9\u4e8e \u6392\u884c \u6392\u884c\u699c 2.0 \u8d5b\u9053 \uff0c \u60a8 \u5fc5\u987b \u9996\u5148 \u5b8c\u6210 \u76f8\u5e94 \u7684 \u8d44\u683c \u4efb\u52a1 \uff1a \u6392\u884c \u6392\u884c\u699c 2.0 - SENSORS \u9884\u9009 \u9884\u9009\u8d5b \u8d5b\u9053 \u6392\u884c \u6392\u884c\u699c 2.0 - MAP \u9884\u9009 \u9884\u9009\u8d5b \u8d5b\u9053 \u6ce8\u610f \u5728 \u6d89\u53ca \u6392\u884c \u6392\u884c\u699c \u7684 \u5e74\u5ea6 \u6bd4\u8d5b \u671f\u95f4 \uff0c \u67d0\u4e9b \u8d5b\u9053 \u53ef\u80fd \u4f1a \u6682\u65f6 \u5173\u95ed \u3002 \u8bf7 \u5bc6\u5207 \u5173\u6ce8 \u6392\u884c \u6392\u884c\u699c \u7f51\u7ad9 \u548c Discord \u8bba\u575b \uff0c \u4e86\u89e3 \u8d5b\u9053 \u4f55\u65f6 \u53ef\u80fd \u5173\u95ed \u63d0\u4ea4 \u3002 \u60a8 \u53ef\u4ee5 \u76f4\u63a5 \u4ece \u4ee5\u4e0b \u90e8\u5206 \u590d\u5236 \u5e76 \u7c98\u8d34 \uff0c \u4ee5 \u786e\u4fdd \u63d0\u4ea4 \u5230 \u6b63\u786e \u7684 \u8f68\u9053 \uff0c \u5e76 \u5c06 < image > \u548c \u66ff\u6362 < tag > \u4e3a \u9002\u5408 \u60a8 \u7684 Docker \u6620\u50cf \u7684 \u503c \uff1a \u8981 \u63d0\u4ea4 \u5230 \u6bcf\u4e2a \u8f68\u8ff9 \u7684 CLI \u547d\u4ee4 \u3002","title":"\u63d0\u4ea4 \u60a8 \u7684 \u610f\u89c1"},{"location":"leaderboard_submit/#_4","text":"\u521b\u5efa \u63d0\u4ea4 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u8f6c\u5230 \u6b64 My Submissions \u90e8\u5206 \u67e5\u770b \u6240\u6709 \u63d0\u4ea4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u72b6\u6001 \u663e\u793a \u63d0\u4ea4 \u72b6\u6001 \u7684 \u9ad8\u7ea7 \u8bf4\u660e \u3002 \u6240\u6709 \u63d0\u4ea4 \u90fd \u4ece \u72b6\u6001 \u5f00\u59cb \uff0c \u4e00\u65e6 \u5728 \u540e \u7aef \u5f00\u59cb \u8fd0\u884c \u5f00\u59cb\u8fd0\u884c \uff0c SUBMITTED \u5c31 \u4f1a \u66f4 \u6539\u4e3a \u3002 \u5b8c\u6210 \u540e \uff0c \u5982\u679c \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u5b83 \u5c06 \u66f4 \u6539\u4e3a PARTIALLY _ EVALUATED \uff0c \u6216\u8005 \u5982\u679c \u53d1\u751f \u751f\u610f \u610f\u5916 \u53d1\u751f\u610f\u5916 \u60c5\u51b5 \uff0c \u5219 \u66f4 \u6539\u4e3a FINISHEDFAILED \u3002 \u5931\u8d25 \u7684 \u63d0\u4ea4 \u53ef\u4ee5 \u6062\u590d \uff0c \u8fd9 \u5c06 \u7ee7\u7eed \u63d0\u4ea4 \uff0c \u800c \u4e0d \u91cd\u590d \u5df2\u7ecf \u5b8c\u6210 \u7684 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u5c06 \u5177\u6709 RESUMED \u72b6\u6001 \uff0c \u800c \u4e0d\u662f SUBMITTED \u76f4\u5230 \u5b83\u4eec \u5f00\u59cb \u8fd0\u884c \u5f00\u59cb\u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u968f\u65f6 \u53d6\u6d88 \u63d0\u4ea4 \u3001 \u505c\u6b62 \u63d0\u4ea4 \u5e76 \u5c06 \u5176 \u72b6\u6001 \u66f4 \u6539\u4e3a CANCELLED \u3002 \u4efb\u4f55 \u63d0\u4ea4 \u90fd \u53ef\u4ee5 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4f7f\u7528 \u76f8\u540c \u63d0\u4ea4 \u7684 docker \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u63d0\u4ea4 \u3002 \u5982\u679c \u63d0\u4ea4 \u6b63\u5728 \u8fd0\u884c \uff0c \u5b83 \u5c06 \u81ea\u52a8 \u53d6\u6d88 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u63d0\u4ea4 \u7684 \u7ed3\u679c \uff0c \u8bf7 \u8bbf\u95ee Stdout file \u63d0\u4f9b \u7684 \u94fe\u63a5 \u3002 \u8be5 \u6587\u4ef6 \u5305\u542b \u6709\u5173 \u63d0\u4ea4 \u7684 \u4e00\u4e9b \u4e00\u822c \u4fe1\u606f \uff0c \u5305\u62ec \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u8def\u7ebf \u8fdb\u5ea6 \u548c \u6700\u7ec8 \u7ed3\u679c \uff0c \u4ee5\u53ca \u6bcf\u6761 \u8def\u7ebf \u7684 \u72b6\u6001 \u548c \u6027\u80fd \u7684 \u672f\u8bed \u672f\u8bed\u8868 \u3002 \u6700\u540e \uff0c \u5982\u679c \u60a8 \u60f3 \u516c\u5f00 \u63d0\u4ea4 \u7684 \u5185\u5bb9 \uff0c \u8bf7 \u9009\u4e2d \u8be5 Show on Leaderboard \u6846 \uff0c \u5b83 \u73b0\u5728 \u5c06 \u663e\u793a \u5728 Leaderboard \u6311\u6218 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u968f\u610f \u7f16\u8f91 \u63d0\u4ea4 \u5185\u5bb9 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u65b9\u6cd5 \u540d\u79f0 \u3001 \u63cf\u8ff0 \u4ee5\u53ca \u9879\u76ee \u6216 \u51fa\u7248 \u51fa\u7248\u7269 \u7684 URL \u7684 \u4efb\u4f55 \u4fe1\u606f \u3002","title":"\u68c0\u67e5 \u60a8 \u63d0\u4ea4 \u7684 \u6570\u636e"},{"location":"libcarla/","text":"LibCarla \u6240\u6709 \u6a21\u5757 \u4e4b\u95f4 \u7684 \u8c03\u7528 \u5173\u7cfb \u56fe \uff1a \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5e93 \u5305\u62ec \uff1a simplify \uff08 \u4f7f\u7528 \u4e8c\u6b21 \u66f2\u9762 \u4e8c\u6b21\u66f2\u9762 \u51cf\u5c11 \u7f51\u683c \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3001 pugixml \uff08 \u8f7b\u91cf \u91cf\u7ea7 \u8f7b\u91cf\u7ea7 \u7684 C++ XML \u5904\u7406 \u5e93 \uff09 \u3001 odrSpiral \uff08 OpenDrive \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u8ba1\u7b97 \u87ba\u65cb \u7684 \u65b9\u6cd5 \uff09 \u3001 moodycamel \uff08 C++ 11 \u5b9e\u73b0 \u7684 \u4e00\u4e2a \u4e00\u4e2a\u591a \u751f\u4ea7 \u4ea7\u8005 \u751f\u4ea7\u8005 \u3001 \u591a \u6d88\u8d39 \u6d88\u8d39\u8005 \u7684 \u65e0\u9501 \u961f\u5217 \uff09 \u3001 marchingcube \uff08 \u4ece \u7ed9\u5b9a \u7684 \u6709 \u7b26\u53f7 \u8ddd\u79bb \u51fd\u6570 \u91cd\u5efa \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \uff09 \u3002 \u7b14\u8bb0 Marching Cubes ( \u4e09\u7ef4 \u89c4\u5219 \u6570\u636e \u573a \u7b49\u503c \u9762 \u751f\u6210 \u3001 \u4ece \u4e09\u7ef4 \u4f53\u7d20 \u4e2d \u63d0\u53d6 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c ) \u3002 \u6709 \u7b26\u53f7 \u8ddd\u79bb \u51fd \uff08 Signed Distance Function , SDF \uff09 , \u6307 \u7684 \u662f \u7ed9\u5b9a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u5750\u6807 , \u8fd4\u56de \u8fd9\u4e2a \u70b9 \u4e0e \u67d0 \u4e00\u9762 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u3002 \u5982\u679c \u8fd9\u4e2a \u8ddd\u79bb \u662f \u8d1f\u6570 , \u5219 \u8bf4\u660e \u5728 \u9762\u5185 , \u662f \u6b63\u6570 \u5219 \u8bf4\u660e \u5728 \u9762\u5916 , \u5982\u679c \u662f 0 , \u5219 \u521a\u597d \u5728 \u9762\u4e0a \uff0c SDF \u7684 signed \u5c31\u662f \u7531\u6b64 \u800c\u6765 \u7531\u6b64\u800c\u6765 . Visual Studio \u5de5\u7a0b \u6240\u5728 \u6240\u5728\u5730 \u76ee\u5f55 \u4e3a \uff1a Build \\ libcarla - visualstudio \\ \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5404\u4e2a \u6a21\u5757 \u4e4b\u95f4 \u7684 \u8c03\u7528 \u5173\u7cfb \u56fe \uff1a \u9ed1\u8272 \u6846 \u8868\u660e \u5f53\u524d \u663e\u793a \u7684 \u662f \u7c7b \u6587\u6863 \u3002 \u7ea2\u8272 \u8fb9\u7ebf \u7684 \u65b9\u6846 \u8868\u793a \u6709 \u6587\u6863 \u7684 \u7ed3\u6784 \u4f53\u6216\u7c7b \uff0c \u8be5\u7c7b \u672a \u5c55\u793a \u5168\u90e8 \u7684 \u7ee7\u627f / \u5305\u542b \u5173\u7cfb \u3002 \u5b9e\u5fc3 \u7bad\u5934 \u6307\u793a \u516c\u6709 \u7ee7\u627f \u3002 \u7f16\u8bd1 \u540e \u7684 \u5b89\u88c5 \u76ee\u5f55 \u4f4d\u4e8e \uff1a PythonAPI \\ carla \\ dependencies \\ \u3002 CMakeLists . txt file GLOB \u547d\u4ee4 \u7528\u4e8e \u5c06 \u6307\u5b9a \u76ee\u5f55 \u4e0b \u7684 \u6240\u6709 \u6587\u4ef6 \u5339\u914d \u5230 \u4e00\u4e2a \u53d8\u91cf \u4e2d \u3002 install \u7528\u4e8e \u6307\u5b9a \u5728 \u5b89\u88c5 \u65f6 \u8fd0\u884c \u7684 \u89c4\u5219 \u3002 DESTINATION \u5b9a\u4e49 \u4e86 \u5b89\u88c5 \u7684 \u8def\u5f84 \uff0c \u4f7f\u7528 CMAKE _ INSTALL _ PREFIX \u6765 \u5b9a\u4e49 \u5b89\u88c5 \u8def\u5f84 \uff08 \u5728 Util \\ BuildTools \\ BuildLibCarla . bat \u4e2d \u7684 - DCMAKE _ INSTALL _ PREFIX \u4e2d \u5b9a\u4e49 \uff0c \u5373 PythonAPI \\ carla \\ dependencies \\ \uff09 \uff0c \u5c31\u8981 \u5199\u6210 \u76f8\u5bf9 \u8def\u5f84 \u76f8\u5bf9\u8def\u5f84 \uff0c \u90a3\u4e48 \u5b89\u88c5 \u540e \u7684 \u8def\u5f84 \u5c31\u662f $ { CMAKE _ INSTALL _ PREFIX } / \u3002 \u5c06 \u5bf9\u5e94 \u76ee\u5f55 \u4e0b \u7684 . cpp \u548c . h \u6587\u4ef6 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u5b89\u88c5 \u8def\u5f84 \u4e0b \u3002 add _ library \uff1a \u7528\u4e8e \u5411 \u9879\u76ee \u6dfb\u52a0 \u4e00\u4e2a \u5e93 \u6587\u4ef6 , \u5e76 \u5b9a\u4e49 \u5176 \u7c7b\u578b ( \u9759\u6001 \u5e93 STATIC \u6216 \u5171\u4eab \u5e93 ) \u3002 carla _ client $ { carla _ target _ postfix } _ debug \u5bf9\u5e94 \uff1a carla _ client _ debug . lib target _ include _ directories \uff1a \u6307\u5b9a \u76ee\u6807 \uff08 exe \u6216\u8005 so \u6587\u4ef6 \uff09 \u9700\u8981 \u5305\u542b \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u8def\u5f84 target _ link _ libraries \uff1a \u6307\u5b9a \u76ee\u6807 \uff08 exe \u6216\u8005 so \u6587\u4ef6 \uff09 \u9700\u8981 \u5305\u542b \u7684 \u5e93 set _ target _ properties \uff1a \u53ef\u4ee5 \u8bbe\u7f6e \u7f16\u8bd1 \u6807\u8bb0 \uff08 \u533a\u5206 \u8c03\u8bd5 \u8fd8\u662f \u53d1\u5e03 \uff09 \u670d\u52a1 \u670d\u52a1\u7aef \u7f16\u8bd1 \u540e \u7684 \u5b89\u88c5 \u76ee\u5f55 \u4f4d\u4e8e \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ \u3002 CMakeLists . txt \u53c2\u8003 C++ \u6587\u6863 Doxygen Doxygen v1.63 \u4e2d\u6587 \u624b\u518c","title":"LibCarla"},{"location":"libcarla/#libcarla","text":"\u6240\u6709 \u6a21\u5757 \u4e4b\u95f4 \u7684 \u8c03\u7528 \u5173\u7cfb \u56fe \uff1a \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5e93 \u5305\u62ec \uff1a simplify \uff08 \u4f7f\u7528 \u4e8c\u6b21 \u66f2\u9762 \u4e8c\u6b21\u66f2\u9762 \u51cf\u5c11 \u7f51\u683c \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3001 pugixml \uff08 \u8f7b\u91cf \u91cf\u7ea7 \u8f7b\u91cf\u7ea7 \u7684 C++ XML \u5904\u7406 \u5e93 \uff09 \u3001 odrSpiral \uff08 OpenDrive \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u8ba1\u7b97 \u87ba\u65cb \u7684 \u65b9\u6cd5 \uff09 \u3001 moodycamel \uff08 C++ 11 \u5b9e\u73b0 \u7684 \u4e00\u4e2a \u4e00\u4e2a\u591a \u751f\u4ea7 \u4ea7\u8005 \u751f\u4ea7\u8005 \u3001 \u591a \u6d88\u8d39 \u6d88\u8d39\u8005 \u7684 \u65e0\u9501 \u961f\u5217 \uff09 \u3001 marchingcube \uff08 \u4ece \u7ed9\u5b9a \u7684 \u6709 \u7b26\u53f7 \u8ddd\u79bb \u51fd\u6570 \u91cd\u5efa \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c \uff09 \u3002 \u7b14\u8bb0 Marching Cubes ( \u4e09\u7ef4 \u89c4\u5219 \u6570\u636e \u573a \u7b49\u503c \u9762 \u751f\u6210 \u3001 \u4ece \u4e09\u7ef4 \u4f53\u7d20 \u4e2d \u63d0\u53d6 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \u7f51\u683c ) \u3002 \u6709 \u7b26\u53f7 \u8ddd\u79bb \u51fd \uff08 Signed Distance Function , SDF \uff09 , \u6307 \u7684 \u662f \u7ed9\u5b9a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u5750\u6807 , \u8fd4\u56de \u8fd9\u4e2a \u70b9 \u4e0e \u67d0 \u4e00\u9762 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u3002 \u5982\u679c \u8fd9\u4e2a \u8ddd\u79bb \u662f \u8d1f\u6570 , \u5219 \u8bf4\u660e \u5728 \u9762\u5185 , \u662f \u6b63\u6570 \u5219 \u8bf4\u660e \u5728 \u9762\u5916 , \u5982\u679c \u662f 0 , \u5219 \u521a\u597d \u5728 \u9762\u4e0a \uff0c SDF \u7684 signed \u5c31\u662f \u7531\u6b64 \u800c\u6765 \u7531\u6b64\u800c\u6765 . Visual Studio \u5de5\u7a0b \u6240\u5728 \u6240\u5728\u5730 \u76ee\u5f55 \u4e3a \uff1a Build \\ libcarla - visualstudio \\ \u3002","title":"LibCarla"},{"location":"libcarla/#_1","text":"\u5404\u4e2a \u6a21\u5757 \u4e4b\u95f4 \u7684 \u8c03\u7528 \u5173\u7cfb \u56fe \uff1a \u9ed1\u8272 \u6846 \u8868\u660e \u5f53\u524d \u663e\u793a \u7684 \u662f \u7c7b \u6587\u6863 \u3002 \u7ea2\u8272 \u8fb9\u7ebf \u7684 \u65b9\u6846 \u8868\u793a \u6709 \u6587\u6863 \u7684 \u7ed3\u6784 \u4f53\u6216\u7c7b \uff0c \u8be5\u7c7b \u672a \u5c55\u793a \u5168\u90e8 \u7684 \u7ee7\u627f / \u5305\u542b \u5173\u7cfb \u3002 \u5b9e\u5fc3 \u7bad\u5934 \u6307\u793a \u516c\u6709 \u7ee7\u627f \u3002 \u7f16\u8bd1 \u540e \u7684 \u5b89\u88c5 \u76ee\u5f55 \u4f4d\u4e8e \uff1a PythonAPI \\ carla \\ dependencies \\ \u3002","title":"\u5ba2\u6237\u7aef"},{"location":"libcarla/#cmakeliststxt","text":"file GLOB \u547d\u4ee4 \u7528\u4e8e \u5c06 \u6307\u5b9a \u76ee\u5f55 \u4e0b \u7684 \u6240\u6709 \u6587\u4ef6 \u5339\u914d \u5230 \u4e00\u4e2a \u53d8\u91cf \u4e2d \u3002 install \u7528\u4e8e \u6307\u5b9a \u5728 \u5b89\u88c5 \u65f6 \u8fd0\u884c \u7684 \u89c4\u5219 \u3002 DESTINATION \u5b9a\u4e49 \u4e86 \u5b89\u88c5 \u7684 \u8def\u5f84 \uff0c \u4f7f\u7528 CMAKE _ INSTALL _ PREFIX \u6765 \u5b9a\u4e49 \u5b89\u88c5 \u8def\u5f84 \uff08 \u5728 Util \\ BuildTools \\ BuildLibCarla . bat \u4e2d \u7684 - DCMAKE _ INSTALL _ PREFIX \u4e2d \u5b9a\u4e49 \uff0c \u5373 PythonAPI \\ carla \\ dependencies \\ \uff09 \uff0c \u5c31\u8981 \u5199\u6210 \u76f8\u5bf9 \u8def\u5f84 \u76f8\u5bf9\u8def\u5f84 \uff0c \u90a3\u4e48 \u5b89\u88c5 \u540e \u7684 \u8def\u5f84 \u5c31\u662f $ { CMAKE _ INSTALL _ PREFIX } / \u3002 \u5c06 \u5bf9\u5e94 \u76ee\u5f55 \u4e0b \u7684 . cpp \u548c . h \u6587\u4ef6 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u5b89\u88c5 \u8def\u5f84 \u4e0b \u3002 add _ library \uff1a \u7528\u4e8e \u5411 \u9879\u76ee \u6dfb\u52a0 \u4e00\u4e2a \u5e93 \u6587\u4ef6 , \u5e76 \u5b9a\u4e49 \u5176 \u7c7b\u578b ( \u9759\u6001 \u5e93 STATIC \u6216 \u5171\u4eab \u5e93 ) \u3002 carla _ client $ { carla _ target _ postfix } _ debug \u5bf9\u5e94 \uff1a carla _ client _ debug . lib target _ include _ directories \uff1a \u6307\u5b9a \u76ee\u6807 \uff08 exe \u6216\u8005 so \u6587\u4ef6 \uff09 \u9700\u8981 \u5305\u542b \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u8def\u5f84 target _ link _ libraries \uff1a \u6307\u5b9a \u76ee\u6807 \uff08 exe \u6216\u8005 so \u6587\u4ef6 \uff09 \u9700\u8981 \u5305\u542b \u7684 \u5e93 set _ target _ properties \uff1a \u53ef\u4ee5 \u8bbe\u7f6e \u7f16\u8bd1 \u6807\u8bb0 \uff08 \u533a\u5206 \u8c03\u8bd5 \u8fd8\u662f \u53d1\u5e03 \uff09","title":"CMakeLists . txt"},{"location":"libcarla/#_2","text":"\u7f16\u8bd1 \u540e \u7684 \u5b89\u88c5 \u76ee\u5f55 \u4f4d\u4e8e \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ \u3002","title":"\u670d\u52a1\u7aef"},{"location":"libcarla/#cmakeliststxt_1","text":"","title":"CMakeLists . txt"},{"location":"libcarla/#_3","text":"C++ \u6587\u6863 Doxygen Doxygen v1.63 \u4e2d\u6587 \u624b\u518c","title":"\u53c2\u8003"},{"location":"map_customization/","text":"\u5730\u56fe \u5b9a\u5236 \u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002 \u521b\u5efa \u65b0 \u5730\u56fe \u6f0f\u6d1e \u4f7f\u7528 Carla \u5de5\u5177 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u5730\u56fe \u4f1a \u5bfc\u81f4 UE4.17 . 2 \u5d29\u6e83 \uff08 \u95ee\u9898 # 99 \uff09 \uff0c \u672c \u6307\u5357 \u5efa\u8bae \u590d\u5236 \u73b0\u6709 \u5173\u5361 \uff0c \u800c \u4e0d\u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u5730\u56fe \u3002 \u8981\u6c42 \u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u68c0\u51fa \u5e76 \u6784\u5efa Carla \u3002 \u521b\u5efa \u590d\u5236 \u73b0\u6709 \u5730\u56fe \u4ece \u5730\u56fe \u4e0a \u5220\u9664 \u6240\u6709 \u4e0d \u9700\u8981 \u7684 \u5185\u5bb9 \u4fdd\u7559 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u201c Lighting \u201d \u3001 \u201c AtmosphericFog \u201d \u3001 \u201c PostProcessVol \u201d \u548c \u201c CarlaMapGenerator \u201d \uff0c \u8fd9 \u5c06 \u4f7f \u6c14\u5019 \u4fdd\u6301 \u9884\u671f \u8fd0\u884c \uff0c \u5e76 \u4fdd\u5b58 \u540e\u671f \u5904\u7406 \u3002 \u5c06 \u7a7a\u767d \u84dd\u56fe \u4fdd\u7559 \u4e3a \u6a21\u677f \u5e76 \u5728 \u5f00\u59cb \u586b\u5145 \u4e4b\u524d \u590d\u5236 \u5b83 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u5728 CarlaMapGenerator \u4e2d \uff0c \u6709 \u4e00\u4e2a \u5b57 \u6bb5 \u201c \u79cd\u5b50 \u201d \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u66f4\u6539 \u8be5 \u79cd\u5b50 \u5e76 \u5355\u51fb \u201c \u89e6\u53d1 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u751f\u6210 \u201d \u6765 \u66f4\u6539 \u5730\u56fe \u3002 \u8fd8 \u5e94\u9009 \u4e2d \u201c \u5c06 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u201d \u3002 \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u79cd\u5b50 \uff0c \u76f4\u5230 \u83b7\u5f97 \u6ee1\u610f \u7684 \u5730\u56fe \u3002 \u6b64\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u60f3\u8981 \u751f\u6210 \u6c7d\u8f66 \u7684 \u5730\u65b9 \u653e\u7f6e \u65b0 \u7684 PlayerStarts \u3002 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u5df2\u7ecf \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \uff0c \u4f46 \u6c7d\u8f66 \u4e0d\u4f1a \u968f\u673a \u884c\u52a8 \u3002 \u8f66\u8f86 \u5c06 \u9075\u5faa RoadMapGenerator \u7ed9\u51fa \u7684 \u6307\u4ee4 \u3002 \u5b83\u4eec \u5728 \u76f4 \u8def\u4e0a \u4f1a \u5f88 \u5bb9\u6613 \u5730 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u4f46 \u5728 \u8fdb\u5165 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u65f6\u5219 \u4e0d\u4f1a \u90a3\u4e48 \u5bb9\u6613 \uff1a \uff08 \u8fd9\u662f \u9053\u8def \u5411 \u8f66\u8f86 \u53d1\u51fa \u7684 \u6307\u4ee4 \u7684 \u8c03\u8bd5 \u89c6\u56fe \u3002 \u5b83\u4eec \u5c06 \u59cb\u7ec8 \u9075\u5faa \u7eff\u8272 \u7bad\u5934 \uff0c \u767d\u70b9 \u662f \u4e00\u6761 \u6216 \u591a\u6761 \u8def\u7ebf \u4e4b\u95f4 \u7684 \u5171\u4eab \u70b9 \uff0c \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u547d\u4ee4 \u8f66\u8f86 \u7ee7\u7eed \u76f4\u884c \uff1b \u9ed1\u70b9 \u504f\u79bb \u9053\u8def \uff0c \u8f66\u8f86 \u6ca1\u6709 \u5f97\u5230 \u4efb\u4f55 \u6307\u4ee4 \u5e76 \u5411 \u5de6 \u884c\u9a76 \uff0c \u8bd5\u56fe \u56de\u5230 \u9053\u8def \u4e0a \uff09 \u8981 \u83b7\u5f97 \u968f\u673a \u884c\u4e3a \uff0c \u60a8 \u5fc5\u987b \u653e\u7f6e IntersectionEntrances \uff0c \u8fd9 \u5c06 \u8ba9 \u60a8 \u91cd\u65b0 \u5b9a\u4e49 \u8f66\u8f86 \u884c\u9a76 \u7684 \u65b9\u5411 \uff0c \u8986\u76d6 \u9053\u8def \u5730\u56fe \u7ed9\u51fa \u7684 \u65b9\u5411 \uff08 \u76f4\u5230 \u5b83\u4eec \u5b8c\u6210 \u7ed9\u5b9a \u7684 \u987a\u5e8f \uff09 \u3002 \uff08 \u53c2\u89c1 \u4e24\u4e2a \u793a\u4f8b \u57ce\u9547 \uff0c \u4e86\u89e3 \u5176 \u5177\u4f53 \u5de5\u4f5c \u539f\u7406 \uff09 \u3002 0.7 . 1 \u7248\u672c \u4e4b\u524d \uff1a \u5bf9\u4e8e \u6bcf\u4e2a \u5165\u53e3 \uff0c \u4f60 \u5fc5\u987b \u521b\u5efa \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7a7a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5b83\u4eec \u5c06 \u4f5c\u4e3a \u5f15\u5bfc \u6c7d\u8f66 \u901a\u8fc7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u8def\u5f84 \u70b9 \uff1b \u7136\u540e \uff0c \u4f60 \u5fc5\u987b \u5c06 \u76f8\u5e94 \u7684 Actor \u5206\u914d \u7ed9 \u6bcf\u6761 \u8def\u5f84 0.7 . 1 \u7248 \u4e4b\u540e \uff1a \u6bcf\u4e2a IntersectionEntrance \u90fd \u6709 \u4e00\u4e2a \u540d\u4e3a routes \u7684 \u6570\u7ec4 \uff0c \u5411 \u5176\u4e2d \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u4f1a \u5728 \u4e16\u754c \u4e2d \u521b\u5efa \u4e00\u4e2a \u53ef \u7f16\u8f91 \u7684 \u6837\u6761 \u7ebf \uff0c \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \u4f4d\u4e8e IntersectionEntrance \u4e0a \uff08 \u60a8 \u53ef\u80fd \u9700\u8981 \u9009\u62e9 \u53e6 \u4e00\u4e2a \u5bf9\u8c61 \u624d\u80fd \u770b\u5230 \u5b83 \uff09 \u6b64 \u6837\u6761 \u7ebf \u5b9a\u4e49 \u4e86 \u4efb\u4f55 \u8f66\u8f86 \u8fdb\u5165 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u65f6 \u53ef\u80fd \u91c7\u53d6 \u7684 \u8def\u7ebf \uff08 \u5c31 \u50cf \u4e4b\u524d \u7684 Empty \u6f14\u5458 \u6240 \u505a \u7684 \u90a3\u6837 \uff09 \u60a8 \u53ef\u4ee5 \u50cf \u7f16\u8f91 \u4efb\u4f55 \u865a\u5e7b \u6837\u6761 \u7ebf \u4e00\u6837 \u914d\u7f6e \u6b64 \u8def\u7ebf \u3002 \u6bcf\u6761 \u8def\u7ebf \u5c06 \u5728 \u4ee5\u4e0b \u5b57\u6bb5 \u4e2d \u521b\u5efa \u4e00\u4e2a \u5143\u7d20 \uff1a \u201c \u6982\u7387 \u201d \u6b64 \u6570\u7ec4 \u4e2d \u7684 \u6bcf\u4e2a \u6570\u5b57 \u90fd \u5b9a\u4e49 \u4e86 \u4efb\u4f55 \u8f66\u8f86 \u91c7\u53d6 \u76f8\u5e94 \u91c7\u53d6\u76f8\u5e94 \u8def\u7ebf \u7684 \u51e0\u7387 \u3002 \u8981 \u6539\u53d8 \u6c7d\u8f66 \u7684 \u901f\u5ea6 \uff0c \u8bf7 \u4f7f\u7528 \u901f\u5ea6 \u9650\u5236 \u9650\u5236\u5668 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8d77\u6765 \u5f88 \u7b80\u5355 \u3002 \uff08 \u786e\u4fdd \u9650\u5236 \u8f6c\u5f2f \u901f\u5ea6 \uff0c \u5426\u5219 \u6c7d\u8f66 \u4f1a \u8bd5\u56fe \u4ee5 \u5168\u901f \u8f6c\u5f2f \uff0c \u4f46 \u65e0\u6cd5 \u6210\u529f \uff09 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9700\u8981 \u6309\u7167 \u811a\u672c \u6765 \u907f\u514d \u4ea4\u901a \u901a\u4e8b \u4e8b\u6545 \u4ea4\u901a\u4e8b\u6545 \u3002 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u6bcf\u6761 \u8857\u9053 \u90fd \u5e94\u8be5 \u6709 \u81ea\u5df1 \u7684 \u7eff\u706f \u8f6c\u5f2f \uff0c \u800c \u5176\u4ed6 \u8857\u9053 \u5219 \u4e0d \u5e94\u6709 \u7eff\u706f \u3002 \u7136\u540e \u4f60 \u5c31 \u53ef\u4ee5 \u5728 \u6574\u4e2a \u4e16\u754c \u4e2d \u5e03\u6ee1 \u98ce\u666f \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u591a\u5c42 \u5efa\u7b51 \u591a\u5c42\u5efa\u7b51 \u6b64 \u84dd\u56fe \u7684 \u76ee\u7684 \u662f \u4f7f \u91cd\u590d \u548c \u6539\u53d8 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u4e00\u4e9b \u3002 \u63d0\u4f9b \u4e00\u4e2a \u57fa\u7840 \u3001 \u4e00\u4e2a \u4e2d\u5c42 \u548c \u4e00\u4e2a \u5c4b\u9876 \uff1b \u6b64 \u84dd\u56fe \u5c06 \u4e2d\u5c42 \u91cd\u590d \u5230 \u6240 \u9700 \u7684 \u5546\u5e97 \u6570\u91cf \uff0c \u5e76 \u5728 \u6ee1\u8db3 \u67d0\u4e9b \u6761\u4ef6 \u7684 \u60c5\u51b5 \u4e0b \u5c06 \u5176 \u4e0e \u6700\u540e \u4e00\u5c42 \u53e0\u52a0 \uff1a \u6240\u6709 \u6a21\u578b \u67a2\u8f74 \u90fd \u5e94 \u4f4d\u4e8e \u7279\u5b9a \u7f51\u683c \u7684 \u5e95\u90e8 \u4e2d\u5fc3 \u3002 Al \u6a21\u578b \u5fc5\u987b \u51c6\u786e \u5730 \u5728 \u91cd\u590d \u53d1\u751f \u7684 \u5730\u65b9 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 \u8be5 \u84dd\u56fe \u7531 \u4ee5\u4e0b 6 \u4e2a \u7279\u5b9a \u53c2\u6570 \u63a7\u5236 \uff1a GroundFloor \uff1a \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5e95\u90e8 \u7684 \u7f51\u683c \u3002 Floor \uff1a \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u91cd\u590d \u7684 \u7f51\u683c \u3002 Roof \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9876\u90e8 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 FloorNumber \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 FloorHeightOffset \uff1a \u5782\u76f4 \u8c03\u6574 \u6bcf \u5c42\u697c \u7684 \u4f4d\u7f6e \u3002 RoofOffset \uff1a \u5782\u76f4 \u8c03\u6574 \u5c4b\u9876 \u7684 \u4f4d\u7f6e \u3002 \u4e00\u65e6 \u5c06 \u8be5 \u84dd\u56fe \u653e\u7f6e \u5728 \u4e16\u754c \u4e2d \uff0c \u6240\u6709 \u8fd9\u4e9b \u53c2\u6570 \u90fd \u53ef\u4ee5 \u88ab \u4fee\u6539 \u3002 SplinemeshRepeater \u6f0f\u6d1e \u53c2\u89c1 # 35 SplineMeshRepeater \u4e22\u5931 \u5176 \u78b0\u649e \u4f53 \u7f51\u683c \u6807\u51c6 \u7528\u9014 \uff1a SplineMeshRepeater \u201c Content / Blueprints / SplineMeshRepeater \u201d \u662f Carla Project \u4e2d \u5305\u542b \u7684 \u4e00\u4e2a \u5de5\u5177 \uff0c \u7528\u4e8e \u5e2e\u52a9 \u6784\u5efa \u57ce\u5e02 \u73af\u5883 \uff1b \u5b83 \u6cbf\u7740 \u6837 \u6761\u7ebf \uff08 \u865a\u5e7b \u7ec4\u4ef6 \uff09 \u91cd\u590d \u548c \u5bf9\u9f50 \u7279\u5b9a \u9009\u5b9a \u7684 \u7f51\u683c \u3002 \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u6784\u5efa \u901a\u5e38 \u5e73\u94fa \u548c \u91cd\u590d \u7684 \u7ed3\u6784 \uff0c \u5982 \u5899\u58c1 \u3001 \u9053\u8def \u3001 \u6865\u6881 \u3001 \u6805\u680f \u2026 \u2026 \u4e00\u65e6 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u653e\u5165 \u4e16\u754c \uff0c \u5c31 \u53ef\u4ee5 \u4fee\u6539 \u6837\u6761 \u7ebf \uff0c \u4ee5\u4fbf \u5bf9\u8c61 \u83b7\u5f97 \u6240 \u9700 \u7684 \u5f62\u5f0f \u3002 \u5b9a\u4e49 \u6837\u6761 \u7ebf \u7684 \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u751f\u6210 \u4e00\u4e2a \u65b0 \u7684 \u56fe\u5757 \uff0c \u56e0\u6b64 \u6837\u6761 \u7ebf \u7684 \u70b9 \u8d8a \u591a \uff0c \u5b83 \u5c31 \u8d8a \u660e\u786e \uff0c \u4f46 \u5bf9 \u4e16\u754c \u7684 \u8d1f\u62c5 \u4e5f \u8d8a \u5927 \u3002 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7531 \u4ee5\u4e0b \u53c2\u6570 \u5b9a\u4e49 \uff1a \u9759\u6001 \u7f51\u683c \u7269\u4f53 ( StaticMesh ) \uff1a \u6cbf \u6837\u6761 \u7ebf \u91cd\u590d \u7684 \u7f51\u683c \u7269\u4f53 \u3002 ForWardAxis \uff1a \u6539\u53d8 \u7f51\u683c \u8f74\u4ee5 \u4e0e \u6837\u6761 \u7ebf \u5bf9\u9f50 \u3002 Material \uff1a \u8986\u76d6 \u7f51\u683c \u7684 \u9ed8\u8ba4 \u6750\u8d28 \u3002 Collision Enabled \uff1a \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 Gap distance \uff1a \u5728 \u6bcf\u4e2a \u91cd\u590d \u7f51\u683c \u4e4b\u95f4 \u653e\u7f6e \u4e00\u4e2a \u95f4\u9699 \uff0c \u9002\u7528 \u4e8e \u91cd\u590d \u7684 \u975e \u8fde\u7eed \u5899\u58c1 \uff1a \u704c\u6728 \u94fe \u3001 \u62a4\u67f1 \u2026 \u2026 \uff08 \u6700\u540e \u4e09\u4e2a \u53d8\u91cf \u662f \u9488\u5bf9 \u4e0b \u4e00\u70b9 \u4e2d\u8981 \u5b9a\u4e49 \u7684 \u4e00\u4e9b \u7279\u5b9a \u8d44\u4ea7 \u800c\u5b9a \u7684 \uff09 \u521b\u5efa \u4e0e \u6b64 \u7ec4\u4ef6 \u517c\u5bb9 \u7684 \u8d44\u4ea7 \u7684 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u662f \uff0c \u6240\u6709 \u7f51\u683c \u7684 \u67a2\u8f74 \u90fd \u653e\u7f6e \u5728 \u91cd\u590d \u5f00\u59cb \u7684 \u6700\u4f4e \u4f4e\u70b9 \u6700\u4f4e\u70b9 \uff0c \u5176\u4f59 \u7f51\u683c \u6307\u5411 \u6b63 \u65b9\u5411 \uff08 \u6700\u597d \u662f X \u8f74 \uff09 \u7279\u5b9a \u5899\u58c1 \uff08 \u52a8\u6001 \u6750\u8d28 \uff09 \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u201c Content / Static / Walls \u201d \u4e2d \u5305\u542b \u4e00\u4e9b \u7279\u5b9a \u8d44\u4ea7 \uff0c \u8fd9\u4e9b \u8d44\u4ea7 \u5c06 \u4e0e \u5177\u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u6b8a \u7279\u6027 \u7684 SplineMeshRepeater \u4e00\u8d77 \u4f7f\u7528 \u3002 \u8fd9\u4e9b \u7f51\u683c \u7684 UV \u7a7a\u95f4 \u53ca\u5176 \u6750\u8d28 \u5bf9\u4e8e \u6240\u6709 \u7f51\u683c \u90fd \u662f \u76f8\u540c \u7684 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u4e92\u6362 \u3002 \u6bcf\u79cd \u6750\u8d28 \u7531 \u4e09\u4e2a \u4e0d\u540c \u7684 \u8868\u9762 \u7ec4\u6210 \uff0c \u6700\u540e \u4e09\u4e2a \u53c2\u6570 \u4f1a \u7a0d\u5fae \u4fee\u6539 \u8fd9\u4e9b \u8868\u9762 \u7684 \u989c\u8272 \uff1a MainMaterialColor \uff1a \u66f4\u6539 \u5899\u58c1 \u7684 \u4e3b\u8981 \u6750\u8d28 DetailsColor \uff1a \u66f4\u6539 \u7ec6\u8282 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 TopWallColor \uff1a \u66f4\u6539 \u5899\u58c1 \u8986\u76d6 \u8986\u76d6\u7269 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 \u8981 \u6dfb\u52a0 \u4ece\u6b64 \u529f\u80fd \u4e2d \u53d7\u76ca \u7684 \u5143\u7d20 \uff0c \u5b58\u5728 GardenWallMask \u6587\u4ef6 \uff0c \u5b83 \u5b9a\u4e49 \u4e86 \u653e\u7f6e \u6750\u6599 \u7684 uv \u7a7a\u95f4 \uff1a \uff08 \u84dd\u8272 \u7a7a\u95f4 \uff1a MainMaterial \uff1b \u7eff\u8272 \u7a7a\u95f4 \uff1a Details \uff1b \u7ea2\u8272 \u7a7a\u95f4 TopWall \uff09 \u3002 \u6750\u8d28 \u4e3b\u63a7 \u4e4b\u95f4 \u662f WallMaster \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4f7f\u7528 \u6b64 \u529f\u80fd \u7684 \u6750\u8d28 \u7684 \u4e3b\u63a7 \u3002 \u5c06 \u521b\u5efa \u6b64 \u6750\u8d28 \u7684 \u5b9e\u4f8b \u5e76 \u6dfb\u52a0 \u76f8\u5e94 \u7684 \u7eb9\u7406 \u3002 \u6b64 \u6750\u8d28 \u5305\u62ec \u4ee5\u4e0b \u53c2\u6570 \uff0c \u4f9b\u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u4fee\u6539 \uff1a Normal Flattener \uff1a \u7a0d\u5fae \u4fee\u6539 \u6cd5\u7ebf \u8d34\u56fe \u503c\u4ee5 \u4f7f \u5176 \u5938\u5927 \u6216 \u5e73\u6574 \u3002 RoughnessCorrection \uff1a \u6539\u53d8 \u7eb9\u7406 \u7ed9\u51fa \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u503c \u3002 \u5176\u4f59 \u53c2\u6570 \u662f \u63a9\u7801 \u7eb9\u7406 \u548c \u989c\u8272 \u6821\u6b63 \uff0c \u8fd9\u4e9b \u53c2\u6570 \u5728 \u672c\u4f8b \u4e2d \u4e0d\u4f1a \u88ab \u4fee\u6539 \uff0c \u4f46 \u5728 \u5c06\u8981 \u53d1\u5e03 \u5230 \u4e16\u754c \u7684 \u84dd\u56fe \u4e2d\u4f1a \u88ab \u4fee\u6539 \u3002 \u5929\u6c14 \u8fd9\u662f \u8d1f\u8d23 \u4fee\u6539 \u6240\u6709 \u7167\u660e \u3001 \u73af\u5883 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u5f71\u54cd \u6c14\u5019 \u5370\u8c61 \u7684 \u4efb\u4f55 \u4f55\u4e8b \u4e8b\u7269 \u4efb\u4f55\u4e8b\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5f53 \u5728 Config . Ini \u4e2d\u672a \u53e6\u884c \u6307\u5b9a \u65f6 \uff0c \u5b83\u4f1a \u968f \u6e38\u620f \u81ea\u52a8 \u8fd0\u884c \uff0c \u4f46 \u6709 \u81ea\u5df1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u6a21\u5f0f \u4e0b \u542f\u52a8 \u4ee5 \u914d\u7f6e \u6c14\u5019 \u6761\u4ef6 \u3002 \u8981 \u5b8c\u5168 \u5de5\u4f5c \uff0c \u5b83 \u5c06 \u9700\u8981 \u4ee5\u4e0b \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e2d \u7684 \u4e00\u4e2a \uff1a SkySphere \u3001 Skylight \u3001 Postprocess Volume \uff08 \u65e0 \u8fb9\u754c \uff09 \u548c Light Source \u5b58\u5728 \u4e8e \u4e16\u754c \u4e2d \u3002 SunPolarAngle \uff1a \u592a\u9633 \u7684 \u6781\u89d2 \uff0c \u51b3\u5b9a \u4e00\u5929 \u7684 \u65f6\u95f4 SunAzimuthAngle \uff1a \u6dfb\u52a0 \u5230 \u5f53\u524d \u7ea7\u522b \u7684 \u592a\u9633 \u4f4d\u7f6e SunBrightness \uff1a \u5929\u7a7a \u76d2\u4e2d \u592a\u9633 \u6e32\u67d3 \u7684 \u4eae\u5ea6 SunDirectionalLightIntensity \uff1a \u592a\u9633 \u9633\u5149 \u592a\u9633\u5149 \u7684 \u5f3a\u5ea6 SunDirectionalLightColor \uff1a \u9633\u5149 \u7684 \u989c\u8272 SunIndirectLightIntensity \uff1a \u4e3b \u53cd\u5c04 \u5149\u53cd\u5c04 \u7684 \u5f3a\u5ea6 CloudOpacity \uff1a \u5929\u7a7a \u76d2 \u4e0a \u4e91 \u6e32\u67d3 \u7684 \u53ef\u89c1 \u6027 HorizontFalloff \uff1a \u786e\u5b9a \u5929\u9876 \u548c \u5730\u5e73 \u5730\u5e73\u7ebf \u989c\u8272 \u4e4b\u95f4 \u7684 \u6e10\u53d8 \u9ad8\u5ea6 ZenithColor \uff1a \u5b9a\u4e49 \u5929\u9876 \u7684 \u989c\u8272 \u3002 HorizonColor \uff1a \u5b9a\u4e49 \u5730\u5e73 \u5730\u5e73\u7ebf \u7684 \u989c\u8272 \u3002 CloudColor \uff1a \u5b9a\u4e49 \u4e91 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 \u3002 OverallSkyColor \uff1a \u5c06 \u5929\u7a7a \u4e2d \u7684 \u6bcf\u4e2a \u989c\u8272 \u5143\u7d20 \u4e58\u4ee5 \u5355\u4e00 \u989c\u8272 \u3002 SkyLightIntensity \uff1a \u4ece \u5929\u7a7a \u53cd\u5c04 \u7684 \u5149 \u7684 \u5f3a\u5ea6 \u3002 SkyLightColor \uff1a \u4ece \u5929\u7a7a \u53cd\u5c04 \u7684 \u5149 \u7684 \u989c\u8272 \u3002 Precipitation \uff1a \u5b9a\u4e49 \u662f\u5426 \u6709 \u964d\u6c34 \u6d3b\u52a8 \u3002 PrecipitationType \uff1a \u6d3b\u8dc3 \u964d\u6c34 \u7684 \u7c7b\u578b \u3002 PrecipitationAmount \uff1a \u6240 \u9009 \u964d\u6c34 \u7684 \u6570\u91cf \u3002 PrecipitationAccumulation \uff1a \u6240 \u9009 \u964d\u6c34 \u7684 \u79ef\u7d2f \u3002 bWind \uff1a \u5b9a\u4e49 \u662f\u5426 \u6709\u98ce \u3002 WindIntensity \uff1a \u5b9a\u4e49 \u98ce \u5f3a\u5ea6 \u3002 WindAngle \uff1a \u5b9a\u4e49 \u98ce\u5411 \u3002 bOverrideCameraPostProcessParameters \uff1a \u5b9a\u4e49 \u662f\u5426 \u8986\u76d6 \u9ed8\u8ba4 \u7684 \u76f8\u673a \u540e\u671f \u5904\u7406 \u3002 CameraPostProcessParameters . AutoExposureMethod \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u7684 \u65b9\u6cd5 \u3002 CameraPostProcessParameters . AutoExposureMinBrightness \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u5728 \u6700\u7ec8 \u56fe\u50cf \u4e2d \u7b97\u4f5c \u7684 \u6700\u5c0f \u4eae\u5ea6 \u3002 CameraPostProcessParameters . AutoExposureMaxBrightness \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u5728 \u6700\u7ec8 \u56fe\u50cf \u4e2d \u7b97\u4f5c \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 CameraPostProcessParameters . AutoExposureBias \uff1a \u4f7f \u6700\u7ec8 \u56fe\u50cf \u53d8\u6697 \u6216 \u53d8\u4eae \uff0c \u8fbe\u5230 \u5b9a\u4e49 \u7684 \u504f\u5dee \u3002 \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u5728 \u9879\u76ee \u4e2d \u4fdd\u5b58 \u4efb\u610f \u6570\u91cf \u7684 \u4e0d\u540c \u914d\u7f6e \uff0c \u5e76 \u901a\u8fc7 \u8bbe\u7f6e \u6587\u4ef6 \u9009\u62e9 \u5728 \u6784\u5efa \u65f6 \u5e94\u7528 \u7684 \u914d\u7f6e \uff1b \u6216\u8005 \u5728 \u6784\u5efa \u7ea7\u522b \u6216 \u6d4b\u8bd5 \u65f6 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5e94\u7528 \u3002","title":"\u5730\u56fe \u5b9a\u5236"},{"location":"map_customization/#_1","text":"\u672c \u6587\u6863 \u5c1a \u5728 \u7f16\u5199 \u4e2d \uff0c \u53ef\u80fd \u4e0d \u5b8c\u6574 \u3002","title":"\u5730\u56fe \u5b9a\u5236"},{"location":"map_customization/#_2","text":"\u6f0f\u6d1e \u4f7f\u7528 Carla \u5de5\u5177 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u5730\u56fe \u4f1a \u5bfc\u81f4 UE4.17 . 2 \u5d29\u6e83 \uff08 \u95ee\u9898 # 99 \uff09 \uff0c \u672c \u6307\u5357 \u5efa\u8bae \u590d\u5236 \u73b0\u6709 \u5173\u5361 \uff0c \u800c \u4e0d\u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u5730\u56fe \u3002","title":"\u521b\u5efa \u65b0 \u5730\u56fe"},{"location":"map_customization/#_3","text":"\u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u68c0\u51fa \u5e76 \u6784\u5efa Carla \u3002","title":"\u8981\u6c42"},{"location":"map_customization/#_4","text":"\u590d\u5236 \u73b0\u6709 \u5730\u56fe \u4ece \u5730\u56fe \u4e0a \u5220\u9664 \u6240\u6709 \u4e0d \u9700\u8981 \u7684 \u5185\u5bb9 \u4fdd\u7559 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u201c Lighting \u201d \u3001 \u201c AtmosphericFog \u201d \u3001 \u201c PostProcessVol \u201d \u548c \u201c CarlaMapGenerator \u201d \uff0c \u8fd9 \u5c06 \u4f7f \u6c14\u5019 \u4fdd\u6301 \u9884\u671f \u8fd0\u884c \uff0c \u5e76 \u4fdd\u5b58 \u540e\u671f \u5904\u7406 \u3002 \u5c06 \u7a7a\u767d \u84dd\u56fe \u4fdd\u7559 \u4e3a \u6a21\u677f \u5e76 \u5728 \u5f00\u59cb \u586b\u5145 \u4e4b\u524d \u590d\u5236 \u5b83 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u5728 CarlaMapGenerator \u4e2d \uff0c \u6709 \u4e00\u4e2a \u5b57 \u6bb5 \u201c \u79cd\u5b50 \u201d \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u66f4\u6539 \u8be5 \u79cd\u5b50 \u5e76 \u5355\u51fb \u201c \u89e6\u53d1 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u751f\u6210 \u201d \u6765 \u66f4\u6539 \u5730\u56fe \u3002 \u8fd8 \u5e94\u9009 \u4e2d \u201c \u5c06 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u201d \u3002 \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u79cd\u5b50 \uff0c \u76f4\u5230 \u83b7\u5f97 \u6ee1\u610f \u7684 \u5730\u56fe \u3002 \u6b64\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u60f3\u8981 \u751f\u6210 \u6c7d\u8f66 \u7684 \u5730\u65b9 \u653e\u7f6e \u65b0 \u7684 PlayerStarts \u3002 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u5df2\u7ecf \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \uff0c \u4f46 \u6c7d\u8f66 \u4e0d\u4f1a \u968f\u673a \u884c\u52a8 \u3002 \u8f66\u8f86 \u5c06 \u9075\u5faa RoadMapGenerator \u7ed9\u51fa \u7684 \u6307\u4ee4 \u3002 \u5b83\u4eec \u5728 \u76f4 \u8def\u4e0a \u4f1a \u5f88 \u5bb9\u6613 \u5730 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u4f46 \u5728 \u8fdb\u5165 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u65f6\u5219 \u4e0d\u4f1a \u90a3\u4e48 \u5bb9\u6613 \uff1a \uff08 \u8fd9\u662f \u9053\u8def \u5411 \u8f66\u8f86 \u53d1\u51fa \u7684 \u6307\u4ee4 \u7684 \u8c03\u8bd5 \u89c6\u56fe \u3002 \u5b83\u4eec \u5c06 \u59cb\u7ec8 \u9075\u5faa \u7eff\u8272 \u7bad\u5934 \uff0c \u767d\u70b9 \u662f \u4e00\u6761 \u6216 \u591a\u6761 \u8def\u7ebf \u4e4b\u95f4 \u7684 \u5171\u4eab \u70b9 \uff0c \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u547d\u4ee4 \u8f66\u8f86 \u7ee7\u7eed \u76f4\u884c \uff1b \u9ed1\u70b9 \u504f\u79bb \u9053\u8def \uff0c \u8f66\u8f86 \u6ca1\u6709 \u5f97\u5230 \u4efb\u4f55 \u6307\u4ee4 \u5e76 \u5411 \u5de6 \u884c\u9a76 \uff0c \u8bd5\u56fe \u56de\u5230 \u9053\u8def \u4e0a \uff09 \u8981 \u83b7\u5f97 \u968f\u673a \u884c\u4e3a \uff0c \u60a8 \u5fc5\u987b \u653e\u7f6e IntersectionEntrances \uff0c \u8fd9 \u5c06 \u8ba9 \u60a8 \u91cd\u65b0 \u5b9a\u4e49 \u8f66\u8f86 \u884c\u9a76 \u7684 \u65b9\u5411 \uff0c \u8986\u76d6 \u9053\u8def \u5730\u56fe \u7ed9\u51fa \u7684 \u65b9\u5411 \uff08 \u76f4\u5230 \u5b83\u4eec \u5b8c\u6210 \u7ed9\u5b9a \u7684 \u987a\u5e8f \uff09 \u3002 \uff08 \u53c2\u89c1 \u4e24\u4e2a \u793a\u4f8b \u57ce\u9547 \uff0c \u4e86\u89e3 \u5176 \u5177\u4f53 \u5de5\u4f5c \u539f\u7406 \uff09 \u3002 0.7 . 1 \u7248\u672c \u4e4b\u524d \uff1a \u5bf9\u4e8e \u6bcf\u4e2a \u5165\u53e3 \uff0c \u4f60 \u5fc5\u987b \u521b\u5efa \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7a7a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5b83\u4eec \u5c06 \u4f5c\u4e3a \u5f15\u5bfc \u6c7d\u8f66 \u901a\u8fc7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u8def\u5f84 \u70b9 \uff1b \u7136\u540e \uff0c \u4f60 \u5fc5\u987b \u5c06 \u76f8\u5e94 \u7684 Actor \u5206\u914d \u7ed9 \u6bcf\u6761 \u8def\u5f84 0.7 . 1 \u7248 \u4e4b\u540e \uff1a \u6bcf\u4e2a IntersectionEntrance \u90fd \u6709 \u4e00\u4e2a \u540d\u4e3a routes \u7684 \u6570\u7ec4 \uff0c \u5411 \u5176\u4e2d \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u4f1a \u5728 \u4e16\u754c \u4e2d \u521b\u5efa \u4e00\u4e2a \u53ef \u7f16\u8f91 \u7684 \u6837\u6761 \u7ebf \uff0c \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \u4f4d\u4e8e IntersectionEntrance \u4e0a \uff08 \u60a8 \u53ef\u80fd \u9700\u8981 \u9009\u62e9 \u53e6 \u4e00\u4e2a \u5bf9\u8c61 \u624d\u80fd \u770b\u5230 \u5b83 \uff09 \u6b64 \u6837\u6761 \u7ebf \u5b9a\u4e49 \u4e86 \u4efb\u4f55 \u8f66\u8f86 \u8fdb\u5165 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u65f6 \u53ef\u80fd \u91c7\u53d6 \u7684 \u8def\u7ebf \uff08 \u5c31 \u50cf \u4e4b\u524d \u7684 Empty \u6f14\u5458 \u6240 \u505a \u7684 \u90a3\u6837 \uff09 \u60a8 \u53ef\u4ee5 \u50cf \u7f16\u8f91 \u4efb\u4f55 \u865a\u5e7b \u6837\u6761 \u7ebf \u4e00\u6837 \u914d\u7f6e \u6b64 \u8def\u7ebf \u3002 \u6bcf\u6761 \u8def\u7ebf \u5c06 \u5728 \u4ee5\u4e0b \u5b57\u6bb5 \u4e2d \u521b\u5efa \u4e00\u4e2a \u5143\u7d20 \uff1a \u201c \u6982\u7387 \u201d \u6b64 \u6570\u7ec4 \u4e2d \u7684 \u6bcf\u4e2a \u6570\u5b57 \u90fd \u5b9a\u4e49 \u4e86 \u4efb\u4f55 \u8f66\u8f86 \u91c7\u53d6 \u76f8\u5e94 \u91c7\u53d6\u76f8\u5e94 \u8def\u7ebf \u7684 \u51e0\u7387 \u3002 \u8981 \u6539\u53d8 \u6c7d\u8f66 \u7684 \u901f\u5ea6 \uff0c \u8bf7 \u4f7f\u7528 \u901f\u5ea6 \u9650\u5236 \u9650\u5236\u5668 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8d77\u6765 \u5f88 \u7b80\u5355 \u3002 \uff08 \u786e\u4fdd \u9650\u5236 \u8f6c\u5f2f \u901f\u5ea6 \uff0c \u5426\u5219 \u6c7d\u8f66 \u4f1a \u8bd5\u56fe \u4ee5 \u5168\u901f \u8f6c\u5f2f \uff0c \u4f46 \u65e0\u6cd5 \u6210\u529f \uff09 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9700\u8981 \u6309\u7167 \u811a\u672c \u6765 \u907f\u514d \u4ea4\u901a \u901a\u4e8b \u4e8b\u6545 \u4ea4\u901a\u4e8b\u6545 \u3002 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u6bcf\u6761 \u8857\u9053 \u90fd \u5e94\u8be5 \u6709 \u81ea\u5df1 \u7684 \u7eff\u706f \u8f6c\u5f2f \uff0c \u800c \u5176\u4ed6 \u8857\u9053 \u5219 \u4e0d \u5e94\u6709 \u7eff\u706f \u3002 \u7136\u540e \u4f60 \u5c31 \u53ef\u4ee5 \u5728 \u6574\u4e2a \u4e16\u754c \u4e2d \u5e03\u6ee1 \u98ce\u666f \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002","title":"\u521b\u5efa"},{"location":"map_customization/#_5","text":"\u6b64 \u84dd\u56fe \u7684 \u76ee\u7684 \u662f \u4f7f \u91cd\u590d \u548c \u6539\u53d8 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u4e00\u4e9b \u3002 \u63d0\u4f9b \u4e00\u4e2a \u57fa\u7840 \u3001 \u4e00\u4e2a \u4e2d\u5c42 \u548c \u4e00\u4e2a \u5c4b\u9876 \uff1b \u6b64 \u84dd\u56fe \u5c06 \u4e2d\u5c42 \u91cd\u590d \u5230 \u6240 \u9700 \u7684 \u5546\u5e97 \u6570\u91cf \uff0c \u5e76 \u5728 \u6ee1\u8db3 \u67d0\u4e9b \u6761\u4ef6 \u7684 \u60c5\u51b5 \u4e0b \u5c06 \u5176 \u4e0e \u6700\u540e \u4e00\u5c42 \u53e0\u52a0 \uff1a \u6240\u6709 \u6a21\u578b \u67a2\u8f74 \u90fd \u5e94 \u4f4d\u4e8e \u7279\u5b9a \u7f51\u683c \u7684 \u5e95\u90e8 \u4e2d\u5fc3 \u3002 Al \u6a21\u578b \u5fc5\u987b \u51c6\u786e \u5730 \u5728 \u91cd\u590d \u53d1\u751f \u7684 \u5730\u65b9 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 \u8be5 \u84dd\u56fe \u7531 \u4ee5\u4e0b 6 \u4e2a \u7279\u5b9a \u53c2\u6570 \u63a7\u5236 \uff1a GroundFloor \uff1a \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5e95\u90e8 \u7684 \u7f51\u683c \u3002 Floor \uff1a \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u91cd\u590d \u7684 \u7f51\u683c \u3002 Roof \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9876\u90e8 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 FloorNumber \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 FloorHeightOffset \uff1a \u5782\u76f4 \u8c03\u6574 \u6bcf \u5c42\u697c \u7684 \u4f4d\u7f6e \u3002 RoofOffset \uff1a \u5782\u76f4 \u8c03\u6574 \u5c4b\u9876 \u7684 \u4f4d\u7f6e \u3002 \u4e00\u65e6 \u5c06 \u8be5 \u84dd\u56fe \u653e\u7f6e \u5728 \u4e16\u754c \u4e2d \uff0c \u6240\u6709 \u8fd9\u4e9b \u53c2\u6570 \u90fd \u53ef\u4ee5 \u88ab \u4fee\u6539 \u3002","title":"\u591a\u5c42\u5efa\u7b51"},{"location":"map_customization/#splinemeshrepeater","text":"\u6f0f\u6d1e \u53c2\u89c1 # 35 SplineMeshRepeater \u4e22\u5931 \u5176 \u78b0\u649e \u4f53 \u7f51\u683c","title":"SplinemeshRepeater"},{"location":"map_customization/#_6","text":"SplineMeshRepeater \u201c Content / Blueprints / SplineMeshRepeater \u201d \u662f Carla Project \u4e2d \u5305\u542b \u7684 \u4e00\u4e2a \u5de5\u5177 \uff0c \u7528\u4e8e \u5e2e\u52a9 \u6784\u5efa \u57ce\u5e02 \u73af\u5883 \uff1b \u5b83 \u6cbf\u7740 \u6837 \u6761\u7ebf \uff08 \u865a\u5e7b \u7ec4\u4ef6 \uff09 \u91cd\u590d \u548c \u5bf9\u9f50 \u7279\u5b9a \u9009\u5b9a \u7684 \u7f51\u683c \u3002 \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u6784\u5efa \u901a\u5e38 \u5e73\u94fa \u548c \u91cd\u590d \u7684 \u7ed3\u6784 \uff0c \u5982 \u5899\u58c1 \u3001 \u9053\u8def \u3001 \u6865\u6881 \u3001 \u6805\u680f \u2026 \u2026 \u4e00\u65e6 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u653e\u5165 \u4e16\u754c \uff0c \u5c31 \u53ef\u4ee5 \u4fee\u6539 \u6837\u6761 \u7ebf \uff0c \u4ee5\u4fbf \u5bf9\u8c61 \u83b7\u5f97 \u6240 \u9700 \u7684 \u5f62\u5f0f \u3002 \u5b9a\u4e49 \u6837\u6761 \u7ebf \u7684 \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u751f\u6210 \u4e00\u4e2a \u65b0 \u7684 \u56fe\u5757 \uff0c \u56e0\u6b64 \u6837\u6761 \u7ebf \u7684 \u70b9 \u8d8a \u591a \uff0c \u5b83 \u5c31 \u8d8a \u660e\u786e \uff0c \u4f46 \u5bf9 \u4e16\u754c \u7684 \u8d1f\u62c5 \u4e5f \u8d8a \u5927 \u3002 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7531 \u4ee5\u4e0b \u53c2\u6570 \u5b9a\u4e49 \uff1a \u9759\u6001 \u7f51\u683c \u7269\u4f53 ( StaticMesh ) \uff1a \u6cbf \u6837\u6761 \u7ebf \u91cd\u590d \u7684 \u7f51\u683c \u7269\u4f53 \u3002 ForWardAxis \uff1a \u6539\u53d8 \u7f51\u683c \u8f74\u4ee5 \u4e0e \u6837\u6761 \u7ebf \u5bf9\u9f50 \u3002 Material \uff1a \u8986\u76d6 \u7f51\u683c \u7684 \u9ed8\u8ba4 \u6750\u8d28 \u3002 Collision Enabled \uff1a \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 Gap distance \uff1a \u5728 \u6bcf\u4e2a \u91cd\u590d \u7f51\u683c \u4e4b\u95f4 \u653e\u7f6e \u4e00\u4e2a \u95f4\u9699 \uff0c \u9002\u7528 \u4e8e \u91cd\u590d \u7684 \u975e \u8fde\u7eed \u5899\u58c1 \uff1a \u704c\u6728 \u94fe \u3001 \u62a4\u67f1 \u2026 \u2026 \uff08 \u6700\u540e \u4e09\u4e2a \u53d8\u91cf \u662f \u9488\u5bf9 \u4e0b \u4e00\u70b9 \u4e2d\u8981 \u5b9a\u4e49 \u7684 \u4e00\u4e9b \u7279\u5b9a \u8d44\u4ea7 \u800c\u5b9a \u7684 \uff09 \u521b\u5efa \u4e0e \u6b64 \u7ec4\u4ef6 \u517c\u5bb9 \u7684 \u8d44\u4ea7 \u7684 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u662f \uff0c \u6240\u6709 \u7f51\u683c \u7684 \u67a2\u8f74 \u90fd \u653e\u7f6e \u5728 \u91cd\u590d \u5f00\u59cb \u7684 \u6700\u4f4e \u4f4e\u70b9 \u6700\u4f4e\u70b9 \uff0c \u5176\u4f59 \u7f51\u683c \u6307\u5411 \u6b63 \u65b9\u5411 \uff08 \u6700\u597d \u662f X \u8f74 \uff09","title":"\u6807\u51c6 \u7528\u9014 \uff1a"},{"location":"map_customization/#_7","text":"\u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u201c Content / Static / Walls \u201d \u4e2d \u5305\u542b \u4e00\u4e9b \u7279\u5b9a \u8d44\u4ea7 \uff0c \u8fd9\u4e9b \u8d44\u4ea7 \u5c06 \u4e0e \u5177\u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u6b8a \u7279\u6027 \u7684 SplineMeshRepeater \u4e00\u8d77 \u4f7f\u7528 \u3002 \u8fd9\u4e9b \u7f51\u683c \u7684 UV \u7a7a\u95f4 \u53ca\u5176 \u6750\u8d28 \u5bf9\u4e8e \u6240\u6709 \u7f51\u683c \u90fd \u662f \u76f8\u540c \u7684 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u4e92\u6362 \u3002 \u6bcf\u79cd \u6750\u8d28 \u7531 \u4e09\u4e2a \u4e0d\u540c \u7684 \u8868\u9762 \u7ec4\u6210 \uff0c \u6700\u540e \u4e09\u4e2a \u53c2\u6570 \u4f1a \u7a0d\u5fae \u4fee\u6539 \u8fd9\u4e9b \u8868\u9762 \u7684 \u989c\u8272 \uff1a MainMaterialColor \uff1a \u66f4\u6539 \u5899\u58c1 \u7684 \u4e3b\u8981 \u6750\u8d28 DetailsColor \uff1a \u66f4\u6539 \u7ec6\u8282 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 TopWallColor \uff1a \u66f4\u6539 \u5899\u58c1 \u8986\u76d6 \u8986\u76d6\u7269 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 \u8981 \u6dfb\u52a0 \u4ece\u6b64 \u529f\u80fd \u4e2d \u53d7\u76ca \u7684 \u5143\u7d20 \uff0c \u5b58\u5728 GardenWallMask \u6587\u4ef6 \uff0c \u5b83 \u5b9a\u4e49 \u4e86 \u653e\u7f6e \u6750\u6599 \u7684 uv \u7a7a\u95f4 \uff1a \uff08 \u84dd\u8272 \u7a7a\u95f4 \uff1a MainMaterial \uff1b \u7eff\u8272 \u7a7a\u95f4 \uff1a Details \uff1b \u7ea2\u8272 \u7a7a\u95f4 TopWall \uff09 \u3002 \u6750\u8d28 \u4e3b\u63a7 \u4e4b\u95f4 \u662f WallMaster \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4f7f\u7528 \u6b64 \u529f\u80fd \u7684 \u6750\u8d28 \u7684 \u4e3b\u63a7 \u3002 \u5c06 \u521b\u5efa \u6b64 \u6750\u8d28 \u7684 \u5b9e\u4f8b \u5e76 \u6dfb\u52a0 \u76f8\u5e94 \u7684 \u7eb9\u7406 \u3002 \u6b64 \u6750\u8d28 \u5305\u62ec \u4ee5\u4e0b \u53c2\u6570 \uff0c \u4f9b\u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u4fee\u6539 \uff1a Normal Flattener \uff1a \u7a0d\u5fae \u4fee\u6539 \u6cd5\u7ebf \u8d34\u56fe \u503c\u4ee5 \u4f7f \u5176 \u5938\u5927 \u6216 \u5e73\u6574 \u3002 RoughnessCorrection \uff1a \u6539\u53d8 \u7eb9\u7406 \u7ed9\u51fa \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u503c \u3002 \u5176\u4f59 \u53c2\u6570 \u662f \u63a9\u7801 \u7eb9\u7406 \u548c \u989c\u8272 \u6821\u6b63 \uff0c \u8fd9\u4e9b \u53c2\u6570 \u5728 \u672c\u4f8b \u4e2d \u4e0d\u4f1a \u88ab \u4fee\u6539 \uff0c \u4f46 \u5728 \u5c06\u8981 \u53d1\u5e03 \u5230 \u4e16\u754c \u7684 \u84dd\u56fe \u4e2d\u4f1a \u88ab \u4fee\u6539 \u3002","title":"\u7279\u5b9a \u5899\u58c1 \uff08 \u52a8\u6001 \u6750\u8d28 \uff09"},{"location":"map_customization/#_8","text":"\u8fd9\u662f \u8d1f\u8d23 \u4fee\u6539 \u6240\u6709 \u7167\u660e \u3001 \u73af\u5883 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u5f71\u54cd \u6c14\u5019 \u5370\u8c61 \u7684 \u4efb\u4f55 \u4f55\u4e8b \u4e8b\u7269 \u4efb\u4f55\u4e8b\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5f53 \u5728 Config . Ini \u4e2d\u672a \u53e6\u884c \u6307\u5b9a \u65f6 \uff0c \u5b83\u4f1a \u968f \u6e38\u620f \u81ea\u52a8 \u8fd0\u884c \uff0c \u4f46 \u6709 \u81ea\u5df1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u6a21\u5f0f \u4e0b \u542f\u52a8 \u4ee5 \u914d\u7f6e \u6c14\u5019 \u6761\u4ef6 \u3002 \u8981 \u5b8c\u5168 \u5de5\u4f5c \uff0c \u5b83 \u5c06 \u9700\u8981 \u4ee5\u4e0b \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e2d \u7684 \u4e00\u4e2a \uff1a SkySphere \u3001 Skylight \u3001 Postprocess Volume \uff08 \u65e0 \u8fb9\u754c \uff09 \u548c Light Source \u5b58\u5728 \u4e8e \u4e16\u754c \u4e2d \u3002 SunPolarAngle \uff1a \u592a\u9633 \u7684 \u6781\u89d2 \uff0c \u51b3\u5b9a \u4e00\u5929 \u7684 \u65f6\u95f4 SunAzimuthAngle \uff1a \u6dfb\u52a0 \u5230 \u5f53\u524d \u7ea7\u522b \u7684 \u592a\u9633 \u4f4d\u7f6e SunBrightness \uff1a \u5929\u7a7a \u76d2\u4e2d \u592a\u9633 \u6e32\u67d3 \u7684 \u4eae\u5ea6 SunDirectionalLightIntensity \uff1a \u592a\u9633 \u9633\u5149 \u592a\u9633\u5149 \u7684 \u5f3a\u5ea6 SunDirectionalLightColor \uff1a \u9633\u5149 \u7684 \u989c\u8272 SunIndirectLightIntensity \uff1a \u4e3b \u53cd\u5c04 \u5149\u53cd\u5c04 \u7684 \u5f3a\u5ea6 CloudOpacity \uff1a \u5929\u7a7a \u76d2 \u4e0a \u4e91 \u6e32\u67d3 \u7684 \u53ef\u89c1 \u6027 HorizontFalloff \uff1a \u786e\u5b9a \u5929\u9876 \u548c \u5730\u5e73 \u5730\u5e73\u7ebf \u989c\u8272 \u4e4b\u95f4 \u7684 \u6e10\u53d8 \u9ad8\u5ea6 ZenithColor \uff1a \u5b9a\u4e49 \u5929\u9876 \u7684 \u989c\u8272 \u3002 HorizonColor \uff1a \u5b9a\u4e49 \u5730\u5e73 \u5730\u5e73\u7ebf \u7684 \u989c\u8272 \u3002 CloudColor \uff1a \u5b9a\u4e49 \u4e91 \u7684 \u989c\u8272 \uff08 \u5982\u679c \u6709 \uff09 \u3002 OverallSkyColor \uff1a \u5c06 \u5929\u7a7a \u4e2d \u7684 \u6bcf\u4e2a \u989c\u8272 \u5143\u7d20 \u4e58\u4ee5 \u5355\u4e00 \u989c\u8272 \u3002 SkyLightIntensity \uff1a \u4ece \u5929\u7a7a \u53cd\u5c04 \u7684 \u5149 \u7684 \u5f3a\u5ea6 \u3002 SkyLightColor \uff1a \u4ece \u5929\u7a7a \u53cd\u5c04 \u7684 \u5149 \u7684 \u989c\u8272 \u3002 Precipitation \uff1a \u5b9a\u4e49 \u662f\u5426 \u6709 \u964d\u6c34 \u6d3b\u52a8 \u3002 PrecipitationType \uff1a \u6d3b\u8dc3 \u964d\u6c34 \u7684 \u7c7b\u578b \u3002 PrecipitationAmount \uff1a \u6240 \u9009 \u964d\u6c34 \u7684 \u6570\u91cf \u3002 PrecipitationAccumulation \uff1a \u6240 \u9009 \u964d\u6c34 \u7684 \u79ef\u7d2f \u3002 bWind \uff1a \u5b9a\u4e49 \u662f\u5426 \u6709\u98ce \u3002 WindIntensity \uff1a \u5b9a\u4e49 \u98ce \u5f3a\u5ea6 \u3002 WindAngle \uff1a \u5b9a\u4e49 \u98ce\u5411 \u3002 bOverrideCameraPostProcessParameters \uff1a \u5b9a\u4e49 \u662f\u5426 \u8986\u76d6 \u9ed8\u8ba4 \u7684 \u76f8\u673a \u540e\u671f \u5904\u7406 \u3002 CameraPostProcessParameters . AutoExposureMethod \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u7684 \u65b9\u6cd5 \u3002 CameraPostProcessParameters . AutoExposureMinBrightness \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u5728 \u6700\u7ec8 \u56fe\u50cf \u4e2d \u7b97\u4f5c \u7684 \u6700\u5c0f \u4eae\u5ea6 \u3002 CameraPostProcessParameters . AutoExposureMaxBrightness \uff1a \u5b9a\u4e49 \u81ea\u52a8 \u66dd\u5149 \u5728 \u6700\u7ec8 \u56fe\u50cf \u4e2d \u7b97\u4f5c \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 CameraPostProcessParameters . AutoExposureBias \uff1a \u4f7f \u6700\u7ec8 \u56fe\u50cf \u53d8\u6697 \u6216 \u53d8\u4eae \uff0c \u8fbe\u5230 \u5b9a\u4e49 \u7684 \u504f\u5dee \u3002 \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u5728 \u9879\u76ee \u4e2d \u4fdd\u5b58 \u4efb\u610f \u6570\u91cf \u7684 \u4e0d\u540c \u914d\u7f6e \uff0c \u5e76 \u901a\u8fc7 \u8bbe\u7f6e \u6587\u4ef6 \u9009\u62e9 \u5728 \u6784\u5efa \u65f6 \u5e94\u7528 \u7684 \u914d\u7f6e \uff1b \u6216\u8005 \u5728 \u6784\u5efa \u7ea7\u522b \u6216 \u6d4b\u8bd5 \u65f6 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5e94\u7528 \u3002","title":"\u5929\u6c14"},{"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 \u4eff\u771f \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 \u4eff\u771f \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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":"measurements/","text":"\u6d4b\u91cf \u91cd\u8981 \u81ea 0.8 . 0 \u7248\u8d77 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u7684 \u6d4b\u91cf \u503c \u91c7\u7528 \u56fd\u9645 \u5355\u4f4d \u5355\u4f4d\u5236 \u3002 \u6240\u6709 \u4f4d\u7f6e \u5747 \u5df2 \u8f6c\u6362 \u4e3a \u7c73 \uff0c \u901f\u5ea6 \u4e5f \u5df2 \u8f6c\u6362 \u4e3a \u7c73 / \u79d2 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6bcf\u5e27 \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u4e00\u4e2a \u5305\u542b \u6d4b\u91cf \u503c \u548c \u6536\u96c6 \u5230 \u7684 \u56fe\u50cf \u6570\u636e \u6570\u636e\u5305 \u3002 \u672c \u6587\u6863 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u6d4b\u91cf \u503c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u65f6\u95f4 \u6233 \u6bcf\u4e2a \u5e27 \u7531 \u4e09\u4e2a \u4e0d\u540c \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 / \u65f6\u95f4 \u6233 \u63cf\u8ff0 \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 frame _ number uint64 \u5e27 \u8ba1\u6570 \u8ba1\u6570\u5668 \uff08 \u4e0d\u4f1a \u5728 \u6bcf\u96c6 \u7ed3\u675f \u540e \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff09 \u3002 platform _ timestamp uint32 \u6beb\u79d2 \u5f53\u524d \u5e27 \u7684 \u65f6\u95f4 \u6233 \uff0c \u7531 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u3002 game _ timestamp uint32 \u6beb\u79d2 \u6e38\u620f \u4e2d \u7684 \u65f6\u95f4 \u6233 \uff0c \u81ea \u5f53\u524d \u5267\u96c6 \u5f00\u59cb \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u5728 \u5b9e\u65f6 \u6a21\u5f0f \u4e0b \uff0c \u4e24\u4e2a \u65f6\u95f4 \u6b65\u957f \u4e4b\u95f4 \u7684 \u7ecf\u8fc7 \u65f6\u95f4 \u5e94 \u4e0e \u5e73\u53f0 \u548c \u6e38\u620f \u65f6\u95f4 \u6233 \u76f8\u4f3c \u3002 \u5728 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e2d \u8fd0\u884c \u65f6 \uff0c \u6e38\u620f \u65f6\u95f4 \u6233 \u4ee5 \u6052\u5b9a \u65f6\u95f4 \u6b65\u957f \u9012\u589e \uff08 delta = 1 / FPS \uff09 \uff0c \u800c \u5e73\u53f0 \u65f6\u95f4 \u6233 \u4fdd\u6301 \u5b9e\u9645 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u73a9\u5bb6 \u6d4b\u91cf \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 transform Transform \u73a9\u5bb6 \u7684 \u4e16\u754c \u53d8\u6362 \uff08 \u5305\u542b \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 acceleration Vector3D m / s ^ 2 \u73a9\u5bb6 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 forward _ speed float m / s \u73a9\u5bb6 \u7684 \u524d\u8fdb \u901f\u5ea6 \u3002 collision _ vehicles float kg * m / s \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u78b0\u649e \u5f3a\u5ea6 \u3002 collision _ pedestrians float kg * m / s \u4e0e \u884c\u4eba \u7684 \u78b0\u649e \u5f3a\u5ea6 \u3002 collision _ other float kg * m / s \u4e00\u822c \u78b0\u649e \u5f3a\u5ea6 \uff08 \u9664 \u884c\u4eba \u548c \u8f66\u8f86 \u4ee5\u5916 \u7684 \u4e00\u5207 \uff09 \u3002 intersection _ otherlane float \u8f66\u8f86 \u4fb5\u5165 \u5176\u4ed6 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 intersection _ offroad float \u6c7d\u8f66 \u8d8a\u91ce \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 autopilot _ control float \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u63a7\u5236 \u5c06 \u5e94\u7528 \u6b64 \u6846\u67b6 \u3002 \u8f6c\u6362 \u53d8\u6362 \u5305\u542b \u73a9\u5bb6 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 location Vector3D \u7c73 \u4e16\u754c \u4f4d\u7f6e \u3002 orientation [ \u5df2\u5f03 \u7528 ] Vector3D \u4ee5 \u5361\u5c14 \u7b1b\u5361\u5c14 \u5750\u6807 \u8868\u793a \u7684 \u65b9\u5411 \u3002 rotation Vector3D \u5ea6 \u4fef\u4ef0 \u3001 \u6eda\u8f6c \u548c \u504f\u822a \u3002 \u78b0\u649e \u78b0\u649e \u53d8\u91cf \u4fdd\u5b58 \u4e86 \u6b64 \u4e8b\u4ef6 \u4e2d \u53d1\u751f \u7684 \u6240\u6709 \u78b0\u649e \u7684 \u7d2f\u79ef \u3002 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u6309 \u6bd4\u4f8b \u5f71\u54cd \u78b0\u649e \u5f3a\u5ea6 \uff08 \u4e24\u4e2a \u78b0\u649e \u7269\u4f53 \u4e4b\u95f4 \u7684 \u6cd5\u5411 \u51b2\u91cf \u7684 \u8303\u6570 \uff09 \u3002 \u4fdd\u7559 \u4e09\u79cd \u4e0d\u540c \u7684 \u8ba1\u6570 \uff08 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u5176\u4ed6 \uff09 \u3002 \u78b0\u649e \u7269\u4f53 \u6839\u636e \u5176 \u6807\u7b7e \u8fdb\u884c \u5206\u7c7b \uff08 \u4e0e \u8bed\u4e49 \u5206\u5272 \u76f8\u540c \uff09 \u3002 \u6f0f\u6d1e \u53c2\u89c1 # 13 \u5f53 \u8f66\u8f86 \u901f\u5ea6 \u8f83 \u4f4e\u65f6 \uff0c \u4e0d\u4f1a \u6807\u6ce8 \u78b0\u649e \u5982\u679c \u8f66\u8f86 \u6ca1\u6709 \u79fb\u52a8 \uff08 < 1 \u516c\u91cc / \u5c0f\u65f6 \uff09 \uff0c \u5219 \u4e0d\u4f1a \u6ce8\u91ca \u78b0\u649e \uff0c \u4ee5 \u907f\u514d \u7531\u4e8e \u975e \u73a9\u5bb6 \u4ee3\u7406 \u7684 AI \u9519\u8bef \u800c \u6ce8\u91ca \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 / \u8d8a\u91ce \u8def\u53e3 \u8f66\u9053 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6d4b\u91cf \u8f66\u8f86 \u4fb5\u5165 \u5bf9\u9762 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8d8a\u91ce \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6d4b\u91cf \u8f66\u8f86 \u5728 \u9053\u8def \u5916 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8fd9\u4e9b \u503c \u662f \u901a\u8fc7 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff08 \u4f5c\u4e3a 2D \u77e9\u5f62 \uff09 \u4e0e \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \u56fe\u50cf \u76f8\u4ea4 \u8ba1\u7b97 \u5f97\u51fa \u7684 \u3002 \u8fd9\u4e9b \u56fe\u50cf \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u751f\u6210 \u5e76 \u5e8f\u5217 \u5e8f\u5217\u5316 \u4ee5\u4f9b \u8fd0\u884c \u65f6 \u4f7f\u7528 \u3002 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 \u53d1\u5e03 \u5305\u4e2d \u7684 \u201c RoadMaps \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u627e\u5230 \u5b83\u4eec \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u63a7\u5236 \u6d4b\u91cf autopilot _ control \u7ed3\u679c \u5305\u542b \u6e38\u620f \u5185 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u5728 \u63a7\u5236 \u8f66\u8f86 \u65f6\u6240 \u5e94\u7528 \u7684 \u63a7\u5236 \u503c \u3002 \u8fd9 \u4e0e \u5c06 \u8f66\u8f86 \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ed3\u6784 \u76f8\u540c \u3002 \u952e \u7c7b\u578b \u63cf\u8ff0 steer float \u8f6c\u5411 \u89d2\u5ea6 \u5728 [ - 1.0 , 1.0 ] \u4e4b\u95f4 ( * ) throttle float \u6cb9\u95e8 \u8f93\u5165 \u4ecb\u4e8e [ 0.0 , 1.0 ] \u4e4b\u95f4 brake float \u5239\u8f66 \u8f93\u5165 \u4ecb\u4e8e [ 0.0 , 1.0 ] \u4e4b\u95f4 hand _ brake bool \u624b\u5239 \u662f\u5426 \u62c9\u7d27 reverse bool \u8f66\u8f86 \u662f\u5426 \u5904\u4e8e \u5012 \u6863 \u8981 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u6fc0\u6d3b \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u8bf7 \u5c06 autopilot _ control \u53d1\u9001 \u56de \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5c06 \u5176 \u53d1\u9001 \u56de \u4e4b\u524d \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u3002 measurements , sensor _ data = carla _ client . read _ data ( ) control = measurements . player _ measurements . autopilot _ control # modify here control if wanted . carla _ client . send _ control ( control ) ( * ) \u5b9e\u9645 \u8f6c\u5411 \u89d2\u5ea6 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6240\u7528 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 Mustang \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u4e3a 70 \u5ea6 \uff08 \u53ef \u5728 \u8f66\u8f86 \u524d\u8f6e \u84dd\u56fe \u4e2d \u67e5\u770b \uff09 \u3002","title":"\u6d4b\u91cf"},{"location":"measurements/#_1","text":"\u91cd\u8981 \u81ea 0.8 . 0 \u7248\u8d77 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u7684 \u6d4b\u91cf \u503c \u91c7\u7528 \u56fd\u9645 \u5355\u4f4d \u5355\u4f4d\u5236 \u3002 \u6240\u6709 \u4f4d\u7f6e \u5747 \u5df2 \u8f6c\u6362 \u4e3a \u7c73 \uff0c \u901f\u5ea6 \u4e5f \u5df2 \u8f6c\u6362 \u4e3a \u7c73 / \u79d2 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6bcf\u5e27 \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u4e00\u4e2a \u5305\u542b \u6d4b\u91cf \u503c \u548c \u6536\u96c6 \u5230 \u7684 \u56fe\u50cf \u6570\u636e \u6570\u636e\u5305 \u3002 \u672c \u6587\u6863 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u6d4b\u91cf \u503c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u6d4b\u91cf"},{"location":"measurements/#_2","text":"\u6bcf\u4e2a \u5e27 \u7531 \u4e09\u4e2a \u4e0d\u540c \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 / \u65f6\u95f4 \u6233 \u63cf\u8ff0 \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 frame _ number uint64 \u5e27 \u8ba1\u6570 \u8ba1\u6570\u5668 \uff08 \u4e0d\u4f1a \u5728 \u6bcf\u96c6 \u7ed3\u675f \u540e \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff09 \u3002 platform _ timestamp uint32 \u6beb\u79d2 \u5f53\u524d \u5e27 \u7684 \u65f6\u95f4 \u6233 \uff0c \u7531 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u3002 game _ timestamp uint32 \u6beb\u79d2 \u6e38\u620f \u4e2d \u7684 \u65f6\u95f4 \u6233 \uff0c \u81ea \u5f53\u524d \u5267\u96c6 \u5f00\u59cb \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u5728 \u5b9e\u65f6 \u6a21\u5f0f \u4e0b \uff0c \u4e24\u4e2a \u65f6\u95f4 \u6b65\u957f \u4e4b\u95f4 \u7684 \u7ecf\u8fc7 \u65f6\u95f4 \u5e94 \u4e0e \u5e73\u53f0 \u548c \u6e38\u620f \u65f6\u95f4 \u6233 \u76f8\u4f3c \u3002 \u5728 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e2d \u8fd0\u884c \u65f6 \uff0c \u6e38\u620f \u65f6\u95f4 \u6233 \u4ee5 \u6052\u5b9a \u65f6\u95f4 \u6b65\u957f \u9012\u589e \uff08 delta = 1 / FPS \uff09 \uff0c \u800c \u5e73\u53f0 \u65f6\u95f4 \u6233 \u4fdd\u6301 \u5b9e\u9645 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002","title":"\u65f6\u95f4 \u6233"},{"location":"measurements/#_3","text":"\u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 transform Transform \u73a9\u5bb6 \u7684 \u4e16\u754c \u53d8\u6362 \uff08 \u5305\u542b \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 acceleration Vector3D m / s ^ 2 \u73a9\u5bb6 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 forward _ speed float m / s \u73a9\u5bb6 \u7684 \u524d\u8fdb \u901f\u5ea6 \u3002 collision _ vehicles float kg * m / s \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u78b0\u649e \u5f3a\u5ea6 \u3002 collision _ pedestrians float kg * m / s \u4e0e \u884c\u4eba \u7684 \u78b0\u649e \u5f3a\u5ea6 \u3002 collision _ other float kg * m / s \u4e00\u822c \u78b0\u649e \u5f3a\u5ea6 \uff08 \u9664 \u884c\u4eba \u548c \u8f66\u8f86 \u4ee5\u5916 \u7684 \u4e00\u5207 \uff09 \u3002 intersection _ otherlane float \u8f66\u8f86 \u4fb5\u5165 \u5176\u4ed6 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 intersection _ offroad float \u6c7d\u8f66 \u8d8a\u91ce \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 autopilot _ control float \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u63a7\u5236 \u5c06 \u5e94\u7528 \u6b64 \u6846\u67b6 \u3002","title":"\u73a9\u5bb6 \u6d4b\u91cf"},{"location":"measurements/#_4","text":"\u53d8\u6362 \u5305\u542b \u73a9\u5bb6 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u952e \u7c7b\u578b \u5355\u4f4d \u63cf\u8ff0 location Vector3D \u7c73 \u4e16\u754c \u4f4d\u7f6e \u3002 orientation [ \u5df2\u5f03 \u7528 ] Vector3D \u4ee5 \u5361\u5c14 \u7b1b\u5361\u5c14 \u5750\u6807 \u8868\u793a \u7684 \u65b9\u5411 \u3002 rotation Vector3D \u5ea6 \u4fef\u4ef0 \u3001 \u6eda\u8f6c \u548c \u504f\u822a \u3002","title":"\u8f6c\u6362"},{"location":"measurements/#_5","text":"\u78b0\u649e \u53d8\u91cf \u4fdd\u5b58 \u4e86 \u6b64 \u4e8b\u4ef6 \u4e2d \u53d1\u751f \u7684 \u6240\u6709 \u78b0\u649e \u7684 \u7d2f\u79ef \u3002 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u6309 \u6bd4\u4f8b \u5f71\u54cd \u78b0\u649e \u5f3a\u5ea6 \uff08 \u4e24\u4e2a \u78b0\u649e \u7269\u4f53 \u4e4b\u95f4 \u7684 \u6cd5\u5411 \u51b2\u91cf \u7684 \u8303\u6570 \uff09 \u3002 \u4fdd\u7559 \u4e09\u79cd \u4e0d\u540c \u7684 \u8ba1\u6570 \uff08 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u5176\u4ed6 \uff09 \u3002 \u78b0\u649e \u7269\u4f53 \u6839\u636e \u5176 \u6807\u7b7e \u8fdb\u884c \u5206\u7c7b \uff08 \u4e0e \u8bed\u4e49 \u5206\u5272 \u76f8\u540c \uff09 \u3002 \u6f0f\u6d1e \u53c2\u89c1 # 13 \u5f53 \u8f66\u8f86 \u901f\u5ea6 \u8f83 \u4f4e\u65f6 \uff0c \u4e0d\u4f1a \u6807\u6ce8 \u78b0\u649e \u5982\u679c \u8f66\u8f86 \u6ca1\u6709 \u79fb\u52a8 \uff08 < 1 \u516c\u91cc / \u5c0f\u65f6 \uff09 \uff0c \u5219 \u4e0d\u4f1a \u6ce8\u91ca \u78b0\u649e \uff0c \u4ee5 \u907f\u514d \u7531\u4e8e \u975e \u73a9\u5bb6 \u4ee3\u7406 \u7684 AI \u9519\u8bef \u800c \u6ce8\u91ca \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u78b0\u649e \u3002","title":"\u78b0\u649e"},{"location":"measurements/#_6","text":"\u8f66\u9053 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6d4b\u91cf \u8f66\u8f86 \u4fb5\u5165 \u5bf9\u9762 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8d8a\u91ce \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6d4b\u91cf \u8f66\u8f86 \u5728 \u9053\u8def \u5916 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u8fd9\u4e9b \u503c \u662f \u901a\u8fc7 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff08 \u4f5c\u4e3a 2D \u77e9\u5f62 \uff09 \u4e0e \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \u56fe\u50cf \u76f8\u4ea4 \u8ba1\u7b97 \u5f97\u51fa \u7684 \u3002 \u8fd9\u4e9b \u56fe\u50cf \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u751f\u6210 \u5e76 \u5e8f\u5217 \u5e8f\u5217\u5316 \u4ee5\u4f9b \u8fd0\u884c \u65f6 \u4f7f\u7528 \u3002 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 \u53d1\u5e03 \u5305\u4e2d \u7684 \u201c RoadMaps \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u627e\u5230 \u5b83\u4eec \u3002","title":"\u8f66\u9053 / \u8d8a\u91ce \u8def\u53e3"},{"location":"measurements/#_7","text":"\u6d4b\u91cf autopilot _ control \u7ed3\u679c \u5305\u542b \u6e38\u620f \u5185 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u5728 \u63a7\u5236 \u8f66\u8f86 \u65f6\u6240 \u5e94\u7528 \u7684 \u63a7\u5236 \u503c \u3002 \u8fd9 \u4e0e \u5c06 \u8f66\u8f86 \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ed3\u6784 \u76f8\u540c \u3002 \u952e \u7c7b\u578b \u63cf\u8ff0 steer float \u8f6c\u5411 \u89d2\u5ea6 \u5728 [ - 1.0 , 1.0 ] \u4e4b\u95f4 ( * ) throttle float \u6cb9\u95e8 \u8f93\u5165 \u4ecb\u4e8e [ 0.0 , 1.0 ] \u4e4b\u95f4 brake float \u5239\u8f66 \u8f93\u5165 \u4ecb\u4e8e [ 0.0 , 1.0 ] \u4e4b\u95f4 hand _ brake bool \u624b\u5239 \u662f\u5426 \u62c9\u7d27 reverse bool \u8f66\u8f86 \u662f\u5426 \u5904\u4e8e \u5012 \u6863 \u8981 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u6fc0\u6d3b \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u8bf7 \u5c06 autopilot _ control \u53d1\u9001 \u56de \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5c06 \u5176 \u53d1\u9001 \u56de \u4e4b\u524d \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u3002 measurements , sensor _ data = carla _ client . read _ data ( ) control = measurements . player _ measurements . autopilot _ control # modify here control if wanted . carla _ client . send _ control ( control ) ( * ) \u5b9e\u9645 \u8f6c\u5411 \u89d2\u5ea6 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6240\u7528 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 Mustang \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u4e3a 70 \u5ea6 \uff08 \u53ef \u5728 \u8f66\u8f86 \u524d\u8f6e \u84dd\u56fe \u4e2d \u67e5\u770b \uff09 \u3002","title":"\u81ea\u52a8 \u9a7e\u9a76\u4eea \u63a7\u5236"},{"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 # \u521b\u5efa \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u4e91 \u6587\u4ef6 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 # \u521b\u5efa \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u4e91 \u6587\u4ef6 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 \u8fd0\u884c \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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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":"carlaviz"},{"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 \u8fd0\u884c \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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \uff0c \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . CAMEvent \u7ee7\u627f \u81ea carla . SensorData \u5b9a\u4e49 sensor . other . v2x \u63d0\u4f9b \u7684 \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9\u662f \u4e00\u79cd \u96c6\u5408 \u7c7b\u578b \uff0c \u7528\u4e8e \u7ec4\u5408 \u8fd4\u56de \u591a\u4e2a CAMData \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ message _ count ( self ) \u83b7\u53d6 \u63a5\u53d7 \u5230 \u7684 CAM \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int \u9b54\u672f \u65b9\u6cd5 __ get _ item __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u5230 \u7684 CAMData \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) 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 \u884c\u4eba \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 \u884c\u4eba \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 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \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 Carla \u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 ) \u4f7f\u7528 map _ name \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u4eca \u4eca\u4e16 \u4e16\u754c \u5f53\u4eca\u4e16\u754c \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \u3002 \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 \u9500\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 \u9500\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 ' = \u884c\u4eba ' 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 \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u6307\u5b9a \u8981 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5730\u56fe \u4e0a \u67e5\u770b \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8be5 \u53c2\u6570 \u4e3a\u7a7a \u5c06 \u9012\u5f52 \u641c\u7d22 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u6240\u6709 \u5730\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5982\u679c \u60a8 \u4e0d \u719f\u6089 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5730\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u7f13\u5b58 \u4e2d \u5c1a\u672a \u5b58\u5728 \u7684 \u6587\u4ef6 \u3002 \u7f13\u5b58 \u53ef\u4ee5 \u5728 HOME \\ carlaCache \u6216 USERPROFILE \\ carlaCache \u4e2d \u627e\u5230 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 version . h \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 \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 \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 \u51b2\u91cf \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 . CustomV2XData \u7ee7\u627f \u81ea carla . SensorData \u8fd9\u662f \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u7684 \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u3002 \u4f5c\u4e3a CustomV2XEvent \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u63a5\u6536 \u3002 \u5b9e\u4f8b \u53d8\u91cf power ( float - \u6beb\u74e6 \u5206\u8d1d dBm ) \u63a5\u6536 \u529f\u7387 \u3002 \u65b9\u6cd5 get ( self ) \u83b7\u53d6 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u3002 \u8fd4\u56de \u5305\u542b \u6d88\u606f \u7684 \u5d4c\u5957 \u5b57\u5178 \u3002 \u5b83 \u6709 \u4e24\u4e2a \u4e3b\u952e \uff1a - Header : dict - Message : str . \u8fd4\u56de \uff1a dict \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . CustomV2XEvent \u7ee7\u627f \u81ea carla . SensorData \u5b9a\u4e49 sensor . other . v2x _ custom \u63d0\u4f9b \u7684 \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9\u662f \u4e00\u79cd \u96c6\u5408 \u7c7b\u578b \uff0c \u7528\u4e8e \u7ec4\u5408 \u8fd4\u56de \u591a\u4e2a CustomV2XData \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ message _ count ( self ) \u83b7\u53d6 \u63a5\u53d7 \u5230 \u7684 CAM \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int \u9b54\u672f \u65b9\u6cd5 __ get _ item __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u7684 CustomV2XData \u6570\u636e \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) 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 1 \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 \u4f53 \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 \u4f53 \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 ( \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 \u897f / \u4e1c\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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \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 \u897f / \u4e1c\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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8def\u5f84 \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 \u8def\u5f84 \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 \u538b\u7ebf \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 \u538b\u7ebf \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 \u8def\u5f84 \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 \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 \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 \u8def\u5f84 \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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u7531 carla . Osm2Odr \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\u51fa \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 ) \u68c0\u6d4b \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth ( float - radians ) \u68c0\u6d4b \u7684 \u65b9\u4f4d \u65b9\u4f4d\u89d2 \u3002 depth ( float - \u7c73 ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u68c0\u6d4b \u4f4d\u7f6e \u7684 \u8ddd\u79bb \u3002 velocity ( float - m / s ) \u88ab \u68c0\u6d4b \u7269\u4f53 \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002 \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 \uff0c \u5728 \u865a\u5e7b \u5f15\u64ce \u4e16\u754c \u91cc \uff0c \u7a7a\u95f4 \u5750\u6807 \u7684 \u5355\u4f4d \u662f \u5398\u7c73 \u3002 \u5176 \u8bbe\u8ba1 \u57fa\u4e8e \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89c9 \uff1a X \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411\u524d \uff0c Y \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411 \u53f3 \uff0c Z \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411\u4e0a \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5bf9\u8c61 \u7c7b\u578b \u3002 actor _ dynamics ( ad . rss . world . RssDynamics ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 ) \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \u3002 rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) \u8be6\u7ec6 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4e16\u754c \u4fe1\u606f \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 ) \u83b7\u53d6 \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 ) \u5728 \u83b7\u53d6 \u5230 \u7684 carla . SemanticLidarDetection \u6570\u636e \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self ) carla . Sensor \u4ece carla . Actor \u7ee7\u627f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6784\u6210 \u4e86 \u4e00\u4e2a \u975e\u5e38 \u591a\u6837 \u591a\u6837\u5316 \u548c \u72ec\u7279 \u7684 \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5bb6\u65cf \u3002 \u5b83\u4eec \u901a\u5e38 \u662f \u4f5c\u4e3a \u8f66\u8f86 \u7684 \u9644\u4ef6 / \u513f\u5b50 \u800c \u4ea7\u751f \u7684 \uff08 \u770b\u770b carla . World \u6765 \u4e86\u89e3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u751f\u6210 \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7ecf\u8fc7 \u7cbe\u5fc3 \u8bbe\u8ba1 \u7cbe\u5fc3\u8bbe\u8ba1 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u5b83\u4eec \u6b63\u5728 \u76d1\u542c \u7684 \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u88ab \u5f62\u6210 \u4e3a \u4ece carla . SensorData \u7ee7\u627f \u7684 \u4e0d\u540c \u5b50\u7c7b \u3002 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u5206\u4e3a \u4e24\u7ec4 \uff1a \u4e00\u7ec4 \u5728 \u6bcf\u4e2a \u8282\u62cd \u4e2d \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff08 \u76f8\u673a \u3001 \u70b9\u4e91 \u548c \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \uff0c \u4e00\u7ec4 \u53e6\u4e00\u7ec4 \u4ec5 \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff08 \u89e6\u53d1 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \uff09 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u5957 \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5b83\u4eec \u7684 \u84dd\u56fe \u53ef\u4ee5 \u5728 carla . BlueprintLibrary \u4e2d \u627e\u5230 \u3002 \u5173\u4e8e \u4ed6\u4eec \u7684 \u504f\u597d \u548c \u653e\u7f6e \u4f4d\u7f6e \u7684 \u6240\u6709 \u4fe1\u606f \u90fd \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u627e\u5230 \uff0c \u4f46 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carla \u4e2d \u53ef\u7528 \u7684 \u4fe1\u606f \u5217\u8868 \u5982\u4e0b \u3002 \u6bcf\u4e2a \u8282\u62cd \u63a5\u6536 \u7684 \u6570\u636e \u3002 - \u6df1\u5ea6 \u76f8\u673a - \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 - SemanticLidar \u5149\u7ebf \u6295\u5c04 - \u96f7\u8fbe - RGB \u76f8\u673a - \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4ec5 \u5728 \u89e6\u53d1 \u65f6 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 - \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . - \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . - \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . \u5b9e\u4f8b \u53d8\u91cf is _ listening ( boolean ) \u5f53\u4e3a True \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u7b49\u5f85 \u6570\u636e \u3002 \u65b9\u6cd5 disable _ for _ ros ( self ) \u5982\u679c \u6ca1\u6709 \u4efb\u4f55 \u76d1\u542c \uff0c \u5219 \u547d\u4ee4 \u4e0d \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u5728 ROS2 \u4e2d \u53d1\u5e03 \u3002 enable _ for _ ros ( self ) \u547d\u4ee4 \u8981 \u5904\u7406 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u80fd\u591f \u5728 ROS2 \u4e2d \u53d1\u5e03 \uff0c \u800c \u65e0\u9700 \u4efb\u4f55 \u76d1\u542c \u3002 is _ enabled _ for _ ros ( self ) \u5982\u679c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u542f\u7528 \uff0c \u5219 \u8fd4\u56de \uff1b \u5982\u679c \u6ca1\u6709 \u4efb\u4f55 \u76d1\u542c \uff0c \u5219 \u4e0d \u5728 ROS2 \u4e2d \u53d1\u5e03 \u3002 \u8fd4\u56de \uff1a bool is _ listening ( self ) \u8fd4\u56de \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5904\u4e8e \u76d1\u542c \u72b6\u6001 \u3002 \u8fd4\u56de \uff1a bool is _ listening _ gbuffer ( self , gbuffer _ id ) \u8fd4\u56de \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5904\u4e8e \u7279\u5b9a GBuffer \u7eb9\u7406 \u7684 \u76d1\u542c \u72b6\u6001 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u76ee\u6807 \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 \u8fd4\u56de \uff1a bool listen ( self , callback ) snippet \u2192 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u6d4b\u91cf \u503c\u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \uff1a callback ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u6709 \u4e00\u4e2a \u53c2\u6570 \u5305\u542b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 listen _ to _ gbuffer ( self , gbuffer _ id , callback ) \u6bcf\u6b21 \u63a5\u6536 \u5230 \u6240 \u9700 \u7684 GBuffer \u7eb9\u7406 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u76ee\u6807 \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 callback ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u6709 \u4e00\u4e2a \u53c2\u6570 \uff0c \u5176\u4e2d \u5305\u542b \u63a5\u6536 \u5230 \u7684 GBuffer \u7eb9\u7406 \u3002 stop ( self ) \u547d\u4ee4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u505c\u6b62 \u76d1\u542c \u6570\u636e \u3002 stop _ gbuffer ( self , gbuffer _ id ) \u547d\u4ee4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u505c\u6b62 \u76d1\u542c \u6307\u5b9a \u7684 GBuffer \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . SensorData \u5305\u542b carla . Sensor \u751f\u6210 \u7684 \u6570\u636e \u7684 \u6240\u6709 \u5bf9\u8c61 \u7684 \u57fa\u7c7b \u3002 \u8fd9\u4e2a \u5bf9\u8c61 \u5e94\u8be5 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u76d1\u542c \u7684 \u51fd\u6570 \u7684 \u53c2\u6570 \uff0c \u4ee5\u4fbf \u4e0e \u5b83\u4eec \u4e00\u8d77 \u5de5\u4f5c \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u7279\u5b9a \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4ee5\u4e0b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u76f8\u5e94 \u6570\u636e \u7684 \u5217\u8868 \u3002 - \u76f8\u673a ( RGB , \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) : carla . Image . - \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . CollisionEvent . - \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . GnssMeasurement . - \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . IMUMeasurement . - \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . LaneInvasionEvent . - \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . LidarMeasurement . - \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . ObstacleDetectionEvent . - \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . RadarMeasurement . - \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . RssResponse . - \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . SemanticLidarMeasurement . - V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u611f\u77e5 \u4fe1\u606f \uff1a carla . CAMEvent . - \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . CustomV2XEvent . \u5b9e\u4f8b \u53d8\u91cf frame ( int ) \u751f\u6210 \u6570\u636e \u65f6 \u7684 \u5e27 \u6570 \u3002 timestamp ( float - seconds ) \u751f\u6210 \u6570\u636e \u7684 \u6a21\u62df \u65f6\u95f4 \u3002 transform ( carla . Transform ) \u6570\u636e \u751f\u6210 \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f6c\u6362 \u3002 carla . TextureColor \u7c7b \u8868\u793a \u8981 \u4e0a \u4f20\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7eb9\u7406 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u683c\u5f0f \u4e3a RGBA \uff0c \u6bcf\u4e2a \u901a\u9053 \u4e3a uint8 \u3002 \u5b9e\u4f8b \u53d8\u91cf width ( int ) \u7eb9\u7406 \u7684 X \u5750\u6807 \u5927\u5c0f \u3002 height ( int ) \u7eb9\u7406 \u7684 Y \u5750\u6807 \u5927\u5c0f \u3002 \u65b9\u6cd5 __ init __ ( self , width , height ) \u4f7f\u7528 \uff08 width , height \uff09 \u5927\u5c0f \u521d\u59cb \u521d\u59cb\u5316 \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) get ( self , x , y ) \u83b7\u53d6 \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) \u8fd4\u56de : carla . Color set ( self , x , y , value ) \u7528\u503c value \u8bbe\u7f6e \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) value ( carla . Color ) \u8bbe\u7f6e \u5668 set _ dimensions ( self , width , height ) \u5c06 \u7eb9\u7406 \u8c03\u6574 \u5230 \u6307\u5b9a \u7684 \u5c3a\u5bf8 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) carla . TextureFloatColor \u7c7b \u8868\u793a \u8981 \u4e0a \u4f20\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7eb9\u7406 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u683c\u5f0f \u4e3a RGBA \uff0c \u6bcf\u4e2a \u901a\u9053 \u7684 \u662f float \u3002 \u5b9e\u4f8b \u53d8\u91cf width ( int ) \u7eb9\u7406 \u7684 X \u5750\u6807 \u5927\u5c0f \u3002 height ( int ) \u7eb9\u7406 \u7684 Y \u5750\u6807 \u5927\u5c0f \u3002 \u65b9\u6cd5 __ init __ ( self , width , height ) \u4f7f\u7528 \uff08 width , height \uff09 \u5927\u5c0f \u521d\u59cb \u521d\u59cb\u5316 \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) get ( self , x , y ) \u83b7\u53d6 \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) \u8fd4\u56de : carla . FloatColor set ( self , x , y , value ) \u7528\u503c value \u8bbe\u7f6e \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) value ( carla . FloatColor ) \u8bbe\u7f6e \u5668 set _ dimensions ( self , width , height ) \u5c06 \u7eb9\u7406 \u8c03\u6574 \u5230 \u6307\u5b9a \u7684 \u5c3a\u5bf8 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) carla . Timestamp \u5305\u542b \u6a21\u62df \u6570\u636e \u65f6\u95f4 \u4fe1\u606f \u7684 \u7c7b \u3002 \u6b64 \u4fe1\u606f \u5c06 \u4f5c\u4e3a carla . WorldSnapshot \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u81ea\u52a8 \u52a8\u68c0 \u68c0\u7d22 \u81ea\u52a8\u68c0\u7d22 \u3002 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u83b7\u5f97 \u7684 \uff0c \u4f46 \u4e5f \u53ef\u80fd \u7528\u4e8e \u8bb8\u591a \u5176\u4ed6 \u60c5\u51b5 \uff0c \u5982 carla . Sensor \u6b63\u5728 \u68c0\u7d22 \u6570\u636e \u3002 \u5b9e\u4f8b \u53d8\u91cf frame ( int ) \u81ea \u6a21\u62df \u6a21\u62df\u5668 \u542f\u52a8 \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u5e27 \u6570 \u3002 elapsed _ seconds ( float - seconds ) \u81ea \u5f53\u524d \u5267\u96c6 \u5f00\u59cb \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u6a21\u62df \u79d2\u6570 \u3002 delta _ seconds ( float - seconds ) \u81ea\u4e0a \u4e00\u5e27 \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u6a21\u62df \u79d2\u6570 \u3002 platform _ timestamp ( float - seconds ) \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u7684 \u8fdb\u884c \u6b64 \u6d4b\u91cf \u7684 \u5e27 \u7684 \u65f6\u95f4 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \uff0c \u5355\u4f4d \u4e3a \u79d2 \u3002 \u65b9\u6cd5 __ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) \u53c2\u6570 \uff1a frame ( int ) elapsed _ seconds ( float - \u79d2 ) delta _ seconds ( float - \u79d2 ) platform _ timestamp ( float - \u79d2 ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self ) carla . TrafficLight \u4ece carla . TrafficSign \u7ee7\u627f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u88ab \u8ba4\u4e3a \u662f \u4e00\u79cd \u7279\u5b9a \u7c7b\u578b \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 \u7531\u4e8e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5927\u591a \u51fa\u73b0 \u5728 \u8def\u53e3 \uff0c \u56e0\u6b64 \u5b83\u4eec \u5c5e\u4e8e \u4e00\u4e2a \u5305\u542b \u4e0d\u540c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u7ec4 \u3002 \u5728 \u7ec4\u5185 \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u901a\u8fc7 \u5176\u6746 \u6307\u6570 \u8fdb\u884c \u533a\u5206 \u3002 \u5728 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \u5185 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u4ee5 \u5faa\u73af \u6a21\u5f0f \u53d8\u5316 \uff1a \u9009\u62e9 \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5b83 \u5728 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u6700\u7ec8 \u7ea2\u8272 \u4e2d \u505c\u7559 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u3002 \u5176\u4f59 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 \u6574\u4e2a \u8fc7\u7a0b \u4e2d \u90fd \u4fdd\u6301 \u7ea2\u8272 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5728 \u5faa\u73af \u7684 \u6700\u540e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u6709 \u4e00\u4e2a \u95f4\u9699 \uff0c \u6240\u6709 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u4f46\u662f \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u53ef\u4ee5 \u624b\u52a8 \u6539\u53d8 \u3002 \u5b9e\u4f8b \u53d8\u91cf state ( carla . TrafficLightState ) \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u65b9\u6cd5 freeze ( self , freeze ) \u5728 \u5f53\u524d \u72b6\u6001 \u5c06 \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u505c\u6b62 \u3002 \u53c2\u6570 \uff1a freeze ( bool ) is _ frozen ( self ) \u5982\u679c \u4ea4\u901a \u4ea4\u901a\u706f \u6839\u636e \u4e0a\u6b21 \u52fe\u9009 \u88ab \u51bb\u7ed3 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u8fd4\u56de True \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : bool reset _ group ( self ) \u5c06 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u91cd\u7f6e \u4e3a \u6a21\u62df \u5f00\u59cb \u65f6 \u7684 \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \u3002 Note : \u6b64 \u65b9\u6cd5 \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8bbe\u7f6e \u5668 get _ affected _ lane _ waypoints ( self ) \u8fd4\u56de \u4e00\u4e2a \u8def\u5f84 \u70b9 \u5217\u8868 \uff0c \u6307\u793a \u4ea4\u901a \u4ea4\u901a\u706f \u4ea7\u751f \u5f71\u54cd \u7684 \u4f4d\u7f6e \u548c \u8f66\u9053 \u3002 \u8fd4\u56de : list ( carla . Waypoint ) get _ elapsed _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u4e0a\u6b21 \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u81ea \u5f53\u524d \u706f\u5149 \u72b6\u6001 \u5f00\u59cb \u4ee5\u6765 \u7684 \u65f6\u95f4 \uff08 \u79d2 \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds get _ green _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4e3a \u7eff\u706f \u8bbe\u7f6e \u7684 \u65f6\u95f4 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) \u8fd4\u56de \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6240\u5c5e \u7ec4\u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) Note : \u6b64 \u65b9\u6cd5 \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 get _ light _ boxes ( self ) \u8fd4\u56de \u4e00\u4e2a \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u6bcf\u4e2a \u706f\u7bb1 \u7684 \u8fb9\u754c \u6846 \u5217\u8868 \u3002 \u8fd4\u56de : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) \u8fd4\u56de \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 OpenDRIVE id \u3002 \u8fd4\u56de : str get _ pole _ index ( self ) \u8fd4\u56de \u5c06 \u5176 \u6807\u8bc6 \u4e3a \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6746 \u7684 \u7d22\u5f15 \u3002 \u8fd4\u56de : int get _ red _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u53d8\u7ea2 \u7684 \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ red _ time get _ state ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : carla . TrafficLightState \u8bbe\u7f6e \u8d77 \uff1a carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) \u8fd4\u56de \u6307\u793a \u4ea4\u901a \u4ea4\u901a\u706f \u505c\u6b62 \u4f4d\u7f6e \u7684 \u8def\u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u8def\u70b9 \u662f \u6839\u636e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u89e6\u53d1 \u6846 \u8ba1\u7b97 \u7b97\u51fa \u51fa\u6765 \u8ba1\u7b97\u51fa\u6765 \u7684 \uff0c \u8fd9\u4e9b \u89e6\u53d1 \u6846 \u6307\u793a \u8f66\u8f86 \u5e94\u8be5 \u505c \u5728 \u54ea\u91cc \u3002 \u8fd4\u56de : list ( carla . Waypoint ) get _ yellow _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4e3a \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u9ec4\u8272 \u7684 \u65f6\u95f4 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - \u79d2 \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ yellow _ time \u8bbe\u7f6e \u5668 set _ green _ time ( self , green _ time ) \u53c2\u6570 \uff1a green _ time ( float - \u79d2 ) - \u8bbe\u7f6e \u7eff\u706f \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) \u8bbe\u7f6e \u7ea2\u8272 \u72b6\u6001 \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a red _ time ( float - \u79d2 ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 \u5c06 \u7ed9\u5b9a \u72b6\u6001 \u8bbe\u7f6e \u4e3a \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53c2\u6570 \uff1a state ( carla . TrafficLightState ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) \u8bbe\u7f6e \u9ec4\u706f \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a 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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u884c\u4eba \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 \u884c\u4eba \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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 ( carla . Waypoint ) ] get _ port ( self ) \u8fd4\u56de \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8def\u5f84 \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 \u9500\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 ) - \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 - \u5343\u7c73 / \u5c0f\u65f6 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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u884c\u4eba \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 \u7236\u7ea7 \u9aa8\u9abc \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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9\u662f \u5b83\u4eec \u5c06 \u63a7\u5236 \u7684 \u884c\u4eba \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 \u4eff\u771f \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 \u884c\u4eba \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 \u884c\u4eba \u63d0\u4f9b \u9aa8\u9abc \u7279\u5b9a \u7684 \u64cd\u4f5c \u3002 \u4e3a\u4e86 \u6e05\u6670 \u8d77 \u89c1 \uff0c \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u884c\u4eba \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 \u8def\u5f84 \u70b9 \u88ab \u63cf\u8ff0 \u4e3a \u4e09\u7ef4 \u6709 \u5411 \u70b9 \u3002 \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u53ef\u4ee5 \u5b9a\u4f4d \u9053\u8def \u4e2d \u7684 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) - \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) - \u8def\u5f84 \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 \u8def\u5f84 \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u9053\u8def \u4e0a \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u8def\u5f84 \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 \u8def\u5f84 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 ) \u51b3\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 ) - \u7c73\u6c0f \u6563\u5c04 \u5f3a\u5ea6 \uff08 \u5927\u6c14 \u4e2d \u7c92\u5b50 \u7684 \u76f4\u5f84 \u4e0e \u8f90\u5c04 \u7684 \u6ce2\u957f \u76f8\u5f53 \uff09 \uff0c \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 \uff08 \u5b8c\u5168 \u4e0d \u6563\u5c04 \uff09 \u3002 rayleigh _ scattering _ scale ( float ) - \u745e\u5229 \u6563\u5c04 \u745e\u5229\u6563\u5c04 \u5f3a\u5ea6 \uff08 \u7c92\u5b50 \u5c3a\u5ea6 \u5c0f\u4e8e \u6ce2\u957f \u7684 \u5341\u5206 \u4e4b\u4e00 \u5341\u5206\u4e4b\u4e00 \uff09 \uff0c \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 \uff08 \u7531\u4e8e \u745e\u5229 \u6563\u5c04 \u745e\u5229\u6563\u5c04 \u7684 \u5f3a\u5ea6 \u4e0e \u6ce2\u957f \u56db\u6b21 \u65b9 \u53cd\u6bd4 \u6210\u53cd\u6bd4 \uff0c \u6240\u4ee5 \u592a\u9633 \u5149\u8c31 \u4e2d\u6ce2 \u6ce2\u957f \u4e2d\u6ce2\u957f \u8f83 \u77ed \u7684 \u84dd \u7d2b\u5149 \u6bd4 \u6ce2\u957f \u8f83\u957f \u7684 \u7ea2\u5149 \u6563\u5c04 \u66f4 \u660e\u663e \uff09 \uff0c \u508d\u665a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \uff08 \u592a\u9633 \u9633\u5149 \u592a\u9633\u5149 \u5728 \u5927\u6c14 \u4e2d\u8981 \u8d70 \u76f8\u5bf9 \u5f88\u957f \u7684 \u8def\u7a0b \uff0c \u76f4\u5c04 \u76f4\u5c04\u5149 \u4e2d \u7684 \u6ce2\u957f \u8f83 \u77ed \u84dd\u5149 \u5927\u91cf \u90fd \u88ab \u6563\u5c04 \u4e86 \uff0c \u53ea \u5269\u4e0b \u7ea2 \u6a59\u8272 \u7684 \u5149 \uff09 \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 ) \u8868\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 - \u5398\u7c73 ) \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 \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 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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u4eff\u771f \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 \u8282\u62cd \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 \u5728 carla . Vehicle \u4e2d apply _ control ( ) \u547d\u4ee4 \u8fdb\u884c \u9002\u5e94 \uff0c \u5b9e\u73b0 \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 ( ) \u547d\u4ee4 \u7684 \u6539\u7f16 \u7248 \uff0c \u5c06 \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5df2\u7ecf \u88ab \u9500\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 \u9500\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"},{"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 \uff0c \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u51b2\u91cf \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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/#_27","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlacamevent","text":"\u7ee7\u627f \u81ea carla . SensorData \u5b9a\u4e49 sensor . other . v2x \u63d0\u4f9b \u7684 \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9\u662f \u4e00\u79cd \u96c6\u5408 \u7c7b\u578b \uff0c \u7528\u4e8e \u7ec4\u5408 \u8fd4\u56de \u591a\u4e2a CAMData \u3002","title":"carla . CAMEvent"},{"location":"python_api/#_28","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_29","text":"get _ message _ count ( self ) \u83b7\u53d6 \u63a5\u53d7 \u5230 \u7684 CAM \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_30","text":"__ get _ item __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u5230 \u7684 CAMData \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self )","title":"\u9b54\u672f \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/#_31","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 \u884c\u4eba \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 \u884c\u4eba \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 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002","title":"carla . Client"},{"location":"python_api/#_32","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 Carla \u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 ) \u4f7f\u7528 map _ name \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u4eca \u4eca\u4e16 \u4e16\u754c \u5f53\u4eca\u4e16\u754c \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \u3002 \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 \u9500\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 \u9500\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 ' = \u884c\u4eba ' 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/#_33","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 \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u6307\u5b9a \u8981 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5730\u56fe \u4e0a \u67e5\u770b \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8be5 \u53c2\u6570 \u4e3a\u7a7a \u5c06 \u9012\u5f52 \u641c\u7d22 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u6240\u6709 \u5730\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5982\u679c \u60a8 \u4e0d \u719f\u6089 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5730\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u7f13\u5b58 \u4e2d \u5c1a\u672a \u5b58\u5728 \u7684 \u6587\u4ef6 \u3002 \u7f13\u5b58 \u53ef\u4ee5 \u5728 HOME \\ carlaCache \u6216 USERPROFILE \\ carlaCache \u4e2d \u627e\u5230 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 version . h \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 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_34","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 \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/#_35","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 \u51b2\u91cf \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/#_36","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/#_37","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/#_38","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/#carlacustomv2xdata","text":"\u7ee7\u627f \u81ea carla . SensorData \u8fd9\u662f \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u7684 \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u3002 \u4f5c\u4e3a CustomV2XEvent \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u63a5\u6536 \u3002","title":"carla . CustomV2XData"},{"location":"python_api/#_39","text":"power ( float - \u6beb\u74e6 \u5206\u8d1d dBm ) \u63a5\u6536 \u529f\u7387 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_40","text":"get ( self ) \u83b7\u53d6 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u3002 \u8fd4\u56de \u5305\u542b \u6d88\u606f \u7684 \u5d4c\u5957 \u5b57\u5178 \u3002 \u5b83 \u6709 \u4e24\u4e2a \u4e3b\u952e \uff1a - Header : dict - Message : str . \u8fd4\u56de \uff1a dict","title":"\u65b9\u6cd5"},{"location":"python_api/#_41","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlacustomv2xevent","text":"\u7ee7\u627f \u81ea carla . SensorData \u5b9a\u4e49 sensor . other . v2x _ custom \u63d0\u4f9b \u7684 \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9\u662f \u4e00\u79cd \u96c6\u5408 \u7c7b\u578b \uff0c \u7528\u4e8e \u7ec4\u5408 \u8fd4\u56de \u591a\u4e2a CustomV2XData \u3002","title":"carla . CustomV2XEvent"},{"location":"python_api/#_42","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_43","text":"get _ message _ count ( self ) \u83b7\u53d6 \u63a5\u53d7 \u5230 \u7684 CAM \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_44","text":"__ get _ item __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u7684 CustomV2XData \u6570\u636e \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"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/#_45","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/#_46","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/#_47","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/#_48","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/#_49","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 1 \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/#_50","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 \u4f53 \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 \u4f53 \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/#_51","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/#_52","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/#_53","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/#_54","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 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002","title":"carla . GBufferTextureID"},{"location":"python_api/#_55","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/#_56","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/#_57","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/#_58","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 \u897f / \u4e1c\u503c \u3002 altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_59","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/#_60","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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \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/#_61","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 \u897f / \u4e1c\u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_62","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_63","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/#_64","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/#_65","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_66","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/#_67","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/#_68","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/#_69","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/#_70","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/#_71","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_72","text":"get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u8def\u5f84 \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 \u8def\u5f84 \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/#_73","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 \u8def\u5f84 \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002","title":"carla . Landmark"},{"location":"python_api/#_74","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 \u8def\u5f84 \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8def\u5f84 \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/#_75","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_76","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/#_77","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/#_78","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 \u8def\u5f84 \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002","title":"carla . LaneChange"},{"location":"python_api/#_79","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 \u538b\u7ebf \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 \u538b\u7ebf \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/#_80","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/#_81","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_82","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/#_83","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/#_84","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 \u8def\u5f84 \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/#_85","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/#_86","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/#_87","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/#_88","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_89","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/#_90","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/#_91","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/#_92","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/#_93","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/#_94","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/#_95","text":"turn _ off ( self ) \u5173\u95ed \u706f \u3002 turn _ on ( self ) \u6253\u5f00 \u706f \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_96","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 \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/#_97","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 \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/#_98","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/#_99","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/#_100","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/#_101","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/#_102","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/#_103","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/#_104","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/#_105","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 \u8def\u5f84 \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/#_106","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/#_107","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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_108","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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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/#_109","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/#_110","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/#_111","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/#_112","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/#_113","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_114","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/#_115","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/#_116","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/#_117","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_118","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/#_119","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/#_120","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/#_121","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/#_122","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/#_123","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 \u7531 carla . Osm2Odr \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/#_124","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\u51fa \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/#_125","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_126","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/#_127","text":"altitude ( float - radians ) \u68c0\u6d4b \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth ( float - radians ) \u68c0\u6d4b \u7684 \u65b9\u4f4d \u65b9\u4f4d\u89d2 \u3002 depth ( float - \u7c73 ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u68c0\u6d4b \u4f4d\u7f6e \u7684 \u8ddd\u79bb \u3002 velocity ( float - m / s ) \u88ab \u68c0\u6d4b \u7269\u4f53 \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_128","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_129","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/#_130","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/#_131","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_132","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/#_133","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 \uff0c \u5728 \u865a\u5e7b \u5f15\u64ce \u4e16\u754c \u91cc \uff0c \u7a7a\u95f4 \u5750\u6807 \u7684 \u5355\u4f4d \u662f \u5398\u7c73 \u3002 \u5176 \u8bbe\u8ba1 \u57fa\u4e8e \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89c9 \uff1a X \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411\u524d \uff0c Y \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411 \u53f3 \uff0c Z \u8f74\u6b63 \u65b9\u5411 \u8868\u793a \u5411\u4e0a \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/#_134","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/#_135","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/#_136","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/#_137","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/#_138","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/#_139","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_140","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/#_141","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5bf9\u8c61 \u7c7b\u578b \u3002 actor _ dynamics ( ad . rss . world . RssDynamics ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_142","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_143","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/#_144","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/#_145","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_146","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/#_147","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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/#_148","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 ) \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \u3002 rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) \u8be6\u7ec6 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u60c5\u51b5 \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/#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/#_151","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/#_152","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/#_153","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4e16\u754c \u4fe1\u606f \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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/#_154","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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/#_155","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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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/#_156","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/#_157","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/#_158","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/#_159","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_160","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 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \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/#_161","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u7ec4\u6210 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_162","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/#_163","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":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_164","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u5230 \u7684 carla . SemanticLidarDetection \u6570\u636e \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ 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 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6784\u6210 \u4e86 \u4e00\u4e2a \u975e\u5e38 \u591a\u6837 \u591a\u6837\u5316 \u548c \u72ec\u7279 \u7684 \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5bb6\u65cf \u3002 \u5b83\u4eec \u901a\u5e38 \u662f \u4f5c\u4e3a \u8f66\u8f86 \u7684 \u9644\u4ef6 / \u513f\u5b50 \u800c \u4ea7\u751f \u7684 \uff08 \u770b\u770b carla . World \u6765 \u4e86\u89e3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u751f\u6210 \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7ecf\u8fc7 \u7cbe\u5fc3 \u8bbe\u8ba1 \u7cbe\u5fc3\u8bbe\u8ba1 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u5b83\u4eec \u6b63\u5728 \u76d1\u542c \u7684 \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u88ab \u5f62\u6210 \u4e3a \u4ece carla . SensorData \u7ee7\u627f \u7684 \u4e0d\u540c \u5b50\u7c7b \u3002 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u5206\u4e3a \u4e24\u7ec4 \uff1a \u4e00\u7ec4 \u5728 \u6bcf\u4e2a \u8282\u62cd \u4e2d \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff08 \u76f8\u673a \u3001 \u70b9\u4e91 \u548c \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \uff0c \u4e00\u7ec4 \u53e6\u4e00\u7ec4 \u4ec5 \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff08 \u89e6\u53d1 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \uff09 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u5957 \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5b83\u4eec \u7684 \u84dd\u56fe \u53ef\u4ee5 \u5728 carla . BlueprintLibrary \u4e2d \u627e\u5230 \u3002 \u5173\u4e8e \u4ed6\u4eec \u7684 \u504f\u597d \u548c \u653e\u7f6e \u4f4d\u7f6e \u7684 \u6240\u6709 \u4fe1\u606f \u90fd \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u627e\u5230 \uff0c \u4f46 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carla \u4e2d \u53ef\u7528 \u7684 \u4fe1\u606f \u5217\u8868 \u5982\u4e0b \u3002 \u6bcf\u4e2a \u8282\u62cd \u63a5\u6536 \u7684 \u6570\u636e \u3002 - \u6df1\u5ea6 \u76f8\u673a - \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 - SemanticLidar \u5149\u7ebf \u6295\u5c04 - \u96f7\u8fbe - RGB \u76f8\u673a - \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4ec5 \u5728 \u89e6\u53d1 \u65f6 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 - \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . - \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 . - \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 .","title":"carla . Sensor"},{"location":"python_api/#_165","text":"is _ listening ( boolean ) \u5f53\u4e3a True \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u7b49\u5f85 \u6570\u636e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_166","text":"disable _ for _ ros ( self ) \u5982\u679c \u6ca1\u6709 \u4efb\u4f55 \u76d1\u542c \uff0c \u5219 \u547d\u4ee4 \u4e0d \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u5728 ROS2 \u4e2d \u53d1\u5e03 \u3002 enable _ for _ ros ( self ) \u547d\u4ee4 \u8981 \u5904\u7406 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u80fd\u591f \u5728 ROS2 \u4e2d \u53d1\u5e03 \uff0c \u800c \u65e0\u9700 \u4efb\u4f55 \u76d1\u542c \u3002 is _ enabled _ for _ ros ( self ) \u5982\u679c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u542f\u7528 \uff0c \u5219 \u8fd4\u56de \uff1b \u5982\u679c \u6ca1\u6709 \u4efb\u4f55 \u76d1\u542c \uff0c \u5219 \u4e0d \u5728 ROS2 \u4e2d \u53d1\u5e03 \u3002 \u8fd4\u56de \uff1a bool is _ listening ( self ) \u8fd4\u56de \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5904\u4e8e \u76d1\u542c \u72b6\u6001 \u3002 \u8fd4\u56de \uff1a bool is _ listening _ gbuffer ( self , gbuffer _ id ) \u8fd4\u56de \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5904\u4e8e \u7279\u5b9a GBuffer \u7eb9\u7406 \u7684 \u76d1\u542c \u72b6\u6001 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u76ee\u6807 \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 \u8fd4\u56de \uff1a bool listen ( self , callback ) snippet \u2192 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u6d4b\u91cf \u503c\u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \uff1a callback ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u6709 \u4e00\u4e2a \u53c2\u6570 \u5305\u542b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 listen _ to _ gbuffer ( self , gbuffer _ id , callback ) \u6bcf\u6b21 \u63a5\u6536 \u5230 \u6240 \u9700 \u7684 GBuffer \u7eb9\u7406 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u76ee\u6807 \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002 callback ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u6709 \u4e00\u4e2a \u53c2\u6570 \uff0c \u5176\u4e2d \u5305\u542b \u63a5\u6536 \u5230 \u7684 GBuffer \u7eb9\u7406 \u3002 stop ( self ) \u547d\u4ee4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u505c\u6b62 \u76d1\u542c \u6570\u636e \u3002 stop _ gbuffer ( self , gbuffer _ id ) \u547d\u4ee4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u505c\u6b62 \u76d1\u542c \u6307\u5b9a \u7684 GBuffer \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a gbuffer _ id ( carla . GBufferTextureID ) - \u865a\u5e7b \u5f15\u64ce GBuffer \u7eb9\u7406 \u7684 ID \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_167","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasensordata","text":"\u5305\u542b carla . Sensor \u751f\u6210 \u7684 \u6570\u636e \u7684 \u6240\u6709 \u5bf9\u8c61 \u7684 \u57fa\u7c7b \u3002 \u8fd9\u4e2a \u5bf9\u8c61 \u5e94\u8be5 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u76d1\u542c \u7684 \u51fd\u6570 \u7684 \u53c2\u6570 \uff0c \u4ee5\u4fbf \u4e0e \u5b83\u4eec \u4e00\u8d77 \u5de5\u4f5c \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u7279\u5b9a \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4ee5\u4e0b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u76f8\u5e94 \u6570\u636e \u7684 \u5217\u8868 \u3002 - \u76f8\u673a ( RGB , \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) : carla . Image . - \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . CollisionEvent . - \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . GnssMeasurement . - \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . IMUMeasurement . - \u538b\u7ebf \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . LaneInvasionEvent . - \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . LidarMeasurement . - \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \uff1a carla . ObstacleDetectionEvent . - \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . RadarMeasurement . - \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . RssResponse . - \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . SemanticLidarMeasurement . - V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u611f\u77e5 \u4fe1\u606f \uff1a carla . CAMEvent . - \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a carla . CustomV2XEvent .","title":"carla . SensorData"},{"location":"python_api/#_168","text":"frame ( int ) \u751f\u6210 \u6570\u636e \u65f6 \u7684 \u5e27 \u6570 \u3002 timestamp ( float - seconds ) \u751f\u6210 \u6570\u636e \u7684 \u6a21\u62df \u65f6\u95f4 \u3002 transform ( carla . Transform ) \u6570\u636e \u751f\u6210 \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f6c\u6362 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatexturecolor","text":"\u7c7b \u8868\u793a \u8981 \u4e0a \u4f20\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7eb9\u7406 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u683c\u5f0f \u4e3a RGBA \uff0c \u6bcf\u4e2a \u901a\u9053 \u4e3a uint8 \u3002","title":"carla . TextureColor"},{"location":"python_api/#_169","text":"width ( int ) \u7eb9\u7406 \u7684 X \u5750\u6807 \u5927\u5c0f \u3002 height ( int ) \u7eb9\u7406 \u7684 Y \u5750\u6807 \u5927\u5c0f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_170","text":"__ init __ ( self , width , height ) \u4f7f\u7528 \uff08 width , height \uff09 \u5927\u5c0f \u521d\u59cb \u521d\u59cb\u5316 \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) get ( self , x , y ) \u83b7\u53d6 \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) \u8fd4\u56de : carla . Color set ( self , x , y , value ) \u7528\u503c value \u8bbe\u7f6e \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) value ( carla . Color )","title":"\u65b9\u6cd5"},{"location":"python_api/#_171","text":"set _ dimensions ( self , width , height ) \u5c06 \u7eb9\u7406 \u8c03\u6574 \u5230 \u6307\u5b9a \u7684 \u5c3a\u5bf8 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatexturefloatcolor","text":"\u7c7b \u8868\u793a \u8981 \u4e0a \u4f20\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7eb9\u7406 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u683c\u5f0f \u4e3a RGBA \uff0c \u6bcf\u4e2a \u901a\u9053 \u7684 \u662f float \u3002","title":"carla . TextureFloatColor"},{"location":"python_api/#_172","text":"width ( int ) \u7eb9\u7406 \u7684 X \u5750\u6807 \u5927\u5c0f \u3002 height ( int ) \u7eb9\u7406 \u7684 Y \u5750\u6807 \u5927\u5c0f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_173","text":"__ init __ ( self , width , height ) \u4f7f\u7528 \uff08 width , height \uff09 \u5927\u5c0f \u521d\u59cb \u521d\u59cb\u5316 \u7eb9\u7406 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int ) get ( self , x , y ) \u83b7\u53d6 \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) \u8fd4\u56de : carla . FloatColor set ( self , x , y , value ) \u7528\u503c value \u8bbe\u7f6e \uff08 x \uff0c y \uff09 \u50cf\u7d20 \u6570\u636e \u3002 \u53c2\u6570 \uff1a x ( int ) y ( int ) value ( carla . FloatColor )","title":"\u65b9\u6cd5"},{"location":"python_api/#_174","text":"set _ dimensions ( self , width , height ) \u5c06 \u7eb9\u7406 \u8c03\u6574 \u5230 \u6307\u5b9a \u7684 \u5c3a\u5bf8 \u3002 \u53c2\u6570 \uff1a width ( int ) height ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatimestamp","text":"\u5305\u542b \u6a21\u62df \u6570\u636e \u65f6\u95f4 \u4fe1\u606f \u7684 \u7c7b \u3002 \u6b64 \u4fe1\u606f \u5c06 \u4f5c\u4e3a carla . WorldSnapshot \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u81ea\u52a8 \u52a8\u68c0 \u68c0\u7d22 \u81ea\u52a8\u68c0\u7d22 \u3002 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u83b7\u5f97 \u7684 \uff0c \u4f46 \u4e5f \u53ef\u80fd \u7528\u4e8e \u8bb8\u591a \u5176\u4ed6 \u60c5\u51b5 \uff0c \u5982 carla . Sensor \u6b63\u5728 \u68c0\u7d22 \u6570\u636e \u3002","title":"carla . Timestamp"},{"location":"python_api/#_175","text":"frame ( int ) \u81ea \u6a21\u62df \u6a21\u62df\u5668 \u542f\u52a8 \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u5e27 \u6570 \u3002 elapsed _ seconds ( float - seconds ) \u81ea \u5f53\u524d \u5267\u96c6 \u5f00\u59cb \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u6a21\u62df \u79d2\u6570 \u3002 delta _ seconds ( float - seconds ) \u81ea\u4e0a \u4e00\u5e27 \u4ee5\u6765 \u7ecf\u8fc7 \u7684 \u6a21\u62df \u79d2\u6570 \u3002 platform _ timestamp ( float - seconds ) \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u7684 \u8fdb\u884c \u6b64 \u6d4b\u91cf \u7684 \u5e27 \u7684 \u65f6\u95f4 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \uff0c \u5355\u4f4d \u4e3a \u79d2 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_176","text":"__ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) \u53c2\u6570 \uff1a frame ( int ) elapsed _ seconds ( float - \u79d2 ) delta _ seconds ( float - \u79d2 ) platform _ timestamp ( float - \u79d2 )","title":"\u65b9\u6cd5"},{"location":"python_api/#_177","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 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u88ab \u8ba4\u4e3a \u662f \u4e00\u79cd \u7279\u5b9a \u7c7b\u578b \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 \u7531\u4e8e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5927\u591a \u51fa\u73b0 \u5728 \u8def\u53e3 \uff0c \u56e0\u6b64 \u5b83\u4eec \u5c5e\u4e8e \u4e00\u4e2a \u5305\u542b \u4e0d\u540c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u7ec4 \u3002 \u5728 \u7ec4\u5185 \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u901a\u8fc7 \u5176\u6746 \u6307\u6570 \u8fdb\u884c \u533a\u5206 \u3002 \u5728 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \u5185 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u4ee5 \u5faa\u73af \u6a21\u5f0f \u53d8\u5316 \uff1a \u9009\u62e9 \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5b83 \u5728 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u6700\u7ec8 \u7ea2\u8272 \u4e2d \u505c\u7559 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u3002 \u5176\u4f59 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 \u6574\u4e2a \u8fc7\u7a0b \u4e2d \u90fd \u4fdd\u6301 \u7ea2\u8272 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5728 \u5faa\u73af \u7684 \u6700\u540e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u6709 \u4e00\u4e2a \u95f4\u9699 \uff0c \u6240\u6709 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u4f46\u662f \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u53ef\u4ee5 \u624b\u52a8 \u6539\u53d8 \u3002","title":"carla . TrafficLight"},{"location":"python_api/#_178","text":"state ( carla . TrafficLightState ) \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_179","text":"freeze ( self , freeze ) \u5728 \u5f53\u524d \u72b6\u6001 \u5c06 \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u505c\u6b62 \u3002 \u53c2\u6570 \uff1a freeze ( bool ) is _ frozen ( self ) \u5982\u679c \u4ea4\u901a \u4ea4\u901a\u706f \u6839\u636e \u4e0a\u6b21 \u52fe\u9009 \u88ab \u51bb\u7ed3 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u8fd4\u56de True \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : bool reset _ group ( self ) \u5c06 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u91cd\u7f6e \u4e3a \u6a21\u62df \u5f00\u59cb \u65f6 \u7684 \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \u3002 Note : \u6b64 \u65b9\u6cd5 \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_180","text":"get _ affected _ lane _ waypoints ( self ) \u8fd4\u56de \u4e00\u4e2a \u8def\u5f84 \u70b9 \u5217\u8868 \uff0c \u6307\u793a \u4ea4\u901a \u4ea4\u901a\u706f \u4ea7\u751f \u5f71\u54cd \u7684 \u4f4d\u7f6e \u548c \u8f66\u9053 \u3002 \u8fd4\u56de : list ( carla . Waypoint ) get _ elapsed _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u4e0a\u6b21 \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u81ea \u5f53\u524d \u706f\u5149 \u72b6\u6001 \u5f00\u59cb \u4ee5\u6765 \u7684 \u65f6\u95f4 \uff08 \u79d2 \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds get _ green _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4e3a \u7eff\u706f \u8bbe\u7f6e \u7684 \u65f6\u95f4 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) \u8fd4\u56de \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6240\u5c5e \u7ec4\u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) Note : \u6b64 \u65b9\u6cd5 \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 get _ light _ boxes ( self ) \u8fd4\u56de \u4e00\u4e2a \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u6bcf\u4e2a \u706f\u7bb1 \u7684 \u8fb9\u754c \u6846 \u5217\u8868 \u3002 \u8fd4\u56de : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) \u8fd4\u56de \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 OpenDRIVE id \u3002 \u8fd4\u56de : str get _ pole _ index ( self ) \u8fd4\u56de \u5c06 \u5176 \u6807\u8bc6 \u4e3a \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6746 \u7684 \u7d22\u5f15 \u3002 \u8fd4\u56de : int get _ red _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u53d8\u7ea2 \u7684 \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - seconds \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ red _ time get _ state ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : carla . TrafficLightState \u8bbe\u7f6e \u8d77 \uff1a carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) \u8fd4\u56de \u6307\u793a \u4ea4\u901a \u4ea4\u901a\u706f \u505c\u6b62 \u4f4d\u7f6e \u7684 \u8def\u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u8def\u70b9 \u662f \u6839\u636e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u89e6\u53d1 \u6846 \u8ba1\u7b97 \u7b97\u51fa \u51fa\u6765 \u8ba1\u7b97\u51fa\u6765 \u7684 \uff0c \u8fd9\u4e9b \u89e6\u53d1 \u6846 \u6307\u793a \u8f66\u8f86 \u5e94\u8be5 \u505c \u5728 \u54ea\u91cc \u3002 \u8fd4\u56de : list ( carla . Waypoint ) get _ yellow _ time ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u8fd4\u56de \u4e3a \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u9ec4\u8272 \u7684 \u65f6\u95f4 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u3002 \u8fd4\u56de : float - \u79d2 \u8bbe\u7f6e \u5668 \uff1a carla . TrafficLight . set _ yellow _ time","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_181","text":"set _ green _ time ( self , green _ time ) \u53c2\u6570 \uff1a green _ time ( float - \u79d2 ) - \u8bbe\u7f6e \u7eff\u706f \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) \u8bbe\u7f6e \u7ea2\u8272 \u72b6\u6001 \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a red _ time ( float - \u79d2 ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 \u5c06 \u7ed9\u5b9a \u72b6\u6001 \u8bbe\u7f6e \u4e3a \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53c2\u6570 \uff1a state ( carla . TrafficLightState ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) \u8bbe\u7f6e \u9ec4\u706f \u6fc0\u6d3b \u7684 \u7ed9\u5b9a \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a yellow _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ yellow _ time","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_182","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/#_183","text":"Red Yellow Green Off Unknown","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatrafficmanager","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_184","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 \u884c\u4eba \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 \u884c\u4eba \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/#_185","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 \u8def\u5f84 \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 \u8def\u5f84 \u70b9 ( carla . Waypoint ) ] get _ port ( self ) \u8fd4\u56de \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_186","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8def\u5f84 \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 \u9500\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 ) - \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_187","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/#_188","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/#_189","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/#_190","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/#_191","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/#_192","text":"x ( float ) X - axis value . y ( float ) Y - axis value .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_193","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/#_194","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/#_195","text":"x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_196","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/#_197","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/#_198","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/#_199","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/#_200","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/#_201","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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 - \u5343\u7c73 / \u5c0f\u65f6 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/#_202","text":"set _ autopilot ( self , enabled = True , port = 8000 ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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/#_203","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/#_204","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/#_205","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/#_206","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/#_207","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/#_208","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/#_209","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/#_210","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/#_211","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/#_212","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/#_213","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/#_214","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/#_215","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/#_216","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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/#_217","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 \u884c\u4eba \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/#_218","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 \u7236\u7ea7 \u9aa8\u9abc \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/#_219","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/#_220","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkeraicontroller","text":"\u4ece carla . Actor \u7ee7\u627f \u5bf9 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9\u662f \u5b83\u4eec \u5c06 \u63a7\u5236 \u7684 \u884c\u4eba \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 \u4eff\u771f \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/#_221","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/#_222","text":"set _ max _ speed ( self , speed = 1.4 ) \u8bbe\u7f6e \u884c\u4eba \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/#_223","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkerbonecontrolin","text":"\u8be5\u7c7b \u4e3a \u884c\u4eba \u63d0\u4f9b \u9aa8\u9abc \u7279\u5b9a \u7684 \u64cd\u4f5c \u3002 \u4e3a\u4e86 \u6e05\u6670 \u8d77 \u89c1 \uff0c \u884c\u4eba \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/#_224","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/#_225","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/#_226","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u76f8\u5bf9 \uff09 \u4e2d \u7684 \u53d8\u6362 \u3002","title":"carla . WalkerBoneControlOut"},{"location":"python_api/#_227","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/#_228","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_229","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/#_230","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 \u884c\u4eba \u5c06 \u6267\u884c \u8df3\u8dc3 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_231","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/#_232","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 \u8def\u5f84 \u70b9 \u88ab \u63cf\u8ff0 \u4e3a \u4e09\u7ef4 \u6709 \u5411 \u70b9 \u3002 \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u53ef\u4ee5 \u5b9a\u4f4d \u9053\u8def \u4e2d \u7684 \u8def\u5f84 \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 \u8def\u5f84 \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/#_233","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 \u8def\u5f84 \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 \u8def\u5f84 \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/#_234","text":"next ( self , distance ) \u5f53\u524d \u70b9 \u67d0\u4e2a \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u7684 \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) - \u8def\u5f84 \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 \u8def\u5f84 \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 \u8def\u5f84 \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 ) - \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint )","title":"\u65b9\u6cd5"},{"location":"python_api/#_235","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 \u8def\u5f84 \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u9053\u8def \u4e0a \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u8def\u5f84 \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 \u8def\u5f84 \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/#_236","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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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/#_237","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 ) \u51b3\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/#_238","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 ) - \u7c73\u6c0f \u6563\u5c04 \u5f3a\u5ea6 \uff08 \u5927\u6c14 \u4e2d \u7c92\u5b50 \u7684 \u76f4\u5f84 \u4e0e \u8f90\u5c04 \u7684 \u6ce2\u957f \u76f8\u5f53 \uff09 \uff0c \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 \uff08 \u5b8c\u5168 \u4e0d \u6563\u5c04 \uff09 \u3002 rayleigh _ scattering _ scale ( float ) - \u745e\u5229 \u6563\u5c04 \u745e\u5229\u6563\u5c04 \u5f3a\u5ea6 \uff08 \u7c92\u5b50 \u5c3a\u5ea6 \u5c0f\u4e8e \u6ce2\u957f \u7684 \u5341\u5206 \u4e4b\u4e00 \u5341\u5206\u4e4b\u4e00 \uff09 \uff0c \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 \uff08 \u7531\u4e8e \u745e\u5229 \u6563\u5c04 \u745e\u5229\u6563\u5c04 \u7684 \u5f3a\u5ea6 \u4e0e \u6ce2\u957f \u56db\u6b21 \u65b9 \u53cd\u6bd4 \u6210\u53cd\u6bd4 \uff0c \u6240\u4ee5 \u592a\u9633 \u5149\u8c31 \u4e2d\u6ce2 \u6ce2\u957f \u4e2d\u6ce2\u957f \u8f83 \u77ed \u7684 \u84dd \u7d2b\u5149 \u6bd4 \u6ce2\u957f \u8f83\u957f \u7684 \u7ea2\u5149 \u6563\u5c04 \u66f4 \u660e\u663e \uff09 \uff0c \u508d\u665a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \uff08 \u592a\u9633 \u9633\u5149 \u592a\u9633\u5149 \u5728 \u5927\u6c14 \u4e2d\u8981 \u8d70 \u76f8\u5bf9 \u5f88\u957f \u7684 \u8def\u7a0b \uff0c \u76f4\u5c04 \u76f4\u5c04\u5149 \u4e2d \u7684 \u6ce2\u957f \u8f83 \u77ed \u84dd\u5149 \u5927\u91cf \u90fd \u88ab \u6563\u5c04 \u4e86 \uff0c \u53ea \u5269\u4e0b \u7ea2 \u6a59\u8272 \u7684 \u5149 \uff09 \u3002 \u7b14\u8bb0 : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset .","title":"\u65b9\u6cd5"},{"location":"python_api/#_239","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/#_240","text":"tire _ friction ( float ) \u8868\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 - \u5398\u7c73 ) \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/#_241","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/#_242","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/#_243","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/#_244","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 \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 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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd \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/#_245","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/#_246","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 \u4eff\u771f \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/#_247","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/#_248","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/#_249","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/#_250","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 \u8282\u62cd \u4fe1\u53f7 \u4e2d \u83b7\u53d6 \u4e00\u4e2a \u65b0 \u7684 \u5feb\u7167 \u3002","title":"carla . WorldSnapshot"},{"location":"python_api/#_251","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/#_252","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/#_253","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/#_254","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/#_255","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/#_256","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/#_257","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/#_258","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/#_259","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/#_260","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/#_261","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/#_262","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/#_263","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/#_264","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/#_265","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/#_266","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/#_267","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/#_268","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/#_269","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":"\u5728 carla . Vehicle \u4e2d apply _ control ( ) \u547d\u4ee4 \u8fdb\u884c \u9002\u5e94 \uff0c \u5b9e\u73b0 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u63a7\u5236 \u3002","title":"command . ApplyVehicleControl"},{"location":"python_api/#_270","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/#_271","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/#_272","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/#_273","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/#_274","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/#_275","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/#_276","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/#_277","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 ( ) \u547d\u4ee4 \u7684 \u6539\u7f16 \u7248 \uff0c \u5c06 \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5df2\u7ecf \u88ab \u9500\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 \u9500\u6bc1 \u3002","title":"command . DestroyActor"},{"location":"python_api/#_278","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_279","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/#_280","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/#_281","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/#_282","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/#_283","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/#_284","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/#_285","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/#_286","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/#_287","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/#_288","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/#_289","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/#_290","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/#_291","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/#_292","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/#_293","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 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u5728 Linux \u4e0a\u7528 make \u6784\u5efa \uff0c \u5728 Windows \u4e0a\u7528 cmake \u6784\u5efa \u3002 CARLA _ ROOT / Examples / CppClient / main . cpp \u4e2d \u7684 \u5b58\u50a8 \u5e93\u4e2d \u63d0\u4f9b \u4e86 \u4e00\u4e2a C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u3002 \u8fd9\u4e2a \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u5c06 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76 \u4f7f\u7528 API \u6267\u884c \u4e00\u4e9b \u7b80\u5355 \u7684 \u4efb\u52a1 \u3002 \u8981 \u6784\u5efa \u793a\u4f8b C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8bf7 \u5728 \u5b58\u50a8 \u5e93 \u7684 CARLA _ ROOT / Examples / CppClient \u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make \uff0c \u7136\u540e \u6267\u884c . / bin / cpp _ client \u6765 \u8fd0\u884c \u793a\u4f8b \u3002 \u8be5 \u793a\u4f8b \u5c06 \u4ece \u53ef\u7528 \u5730\u56fe \u4e2d \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u5730\u56fe \uff0c \u7136\u540e \u52a0\u8f7d \u5b83 \u3002 \u7136\u540e \uff0c \u5b83 \u5c06 \u751f\u6210 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5e76 \u5bf9 \u8be5\u8f66 \u5e94\u7528 \u63a7\u5236 \u3002 \u6709\u5173 \u6b64 \u793a\u4f8b \u811a\u672c \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u3001 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 C++ \u6587\u6863 \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 \u3002 \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 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \u5728 vs2019 \u4e2d \u70b9\u51fb \u83dc\u5355 \u6587\u4ef6 - > \u6253\u5f00 - > CMake \uff0c \u6253\u5f00 Examples \\ CppClient \\ CMakeLists . txt \uff1b \u70b9\u51fb \u7ba1\u7406 \u914d\u7f6e \uff0c \u6dfb\u52a0 \u65b0 \u7684 \u914d\u7f6e x64 - release \uff1b \uff08 \u6ce8\u610f \uff1a x64 - Debug \u8fd8\u6709 \u95ee\u9898 \uff09 \uff1b \u542f\u52a8 Carla \u670d\u52a1 \u670d\u52a1\u7aef \u540e \uff0c \u5728 vs2019 \u4e2d \u70b9\u51fb \u8c03\u8bd5 - > \u5f00\u59cb \u6267\u884c \u3002 \u9605\u8bfb HUD : Heads - up Displays , \u5934\u663e \u3002 \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \uff08 UI \uff09 \u548c \u5934\u663e \uff08 HUD \uff09 \u662f \u6e38\u620f \u5411 \u73a9\u5bb6 \u63d0\u4f9b \u6e38\u620f \u4fe1\u606f \u4ee5\u53ca \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \u5141\u8bb8 \u73a9\u5bb6 \u4e0e \u6e38\u620f \u4e92\u52a8 \u7684 \u65b9\u5f0f \u3002 HUD \u6307 \u7684 \u662f \u6e38\u620f \u671f\u95f4 \u5728 \u5c4f\u5e55 \u4e0a \u8986\u76d6 \u7684 \u72b6\u6001 \u548c \u4fe1\u606f \u3002 HUD \u7684 \u76ee\u7684 \u662f \u544a\u77e5 \u73a9\u5bb6 \u5f53\u524d \u6e38\u620f \u72b6\u6001 \uff0c \u5373 \u5206\u6570 \u3001 \u751f\u547d \u503c \u3001 \u6e38\u620f \u5269\u4f59 \u65f6\u95f4 \u5269\u4f59\u65f6\u95f4 \u7b49 \u3002 HUD \u901a\u5e38 \u662f \u4e0d\u53ef \u4e92\u52a8 \u7684 \uff0c \u610f\u5473 \u610f\u5473\u7740 \u73a9\u5bb6 \u4e0d\u80fd \u5355\u51fb HUD \u7684 \u5143\u7d20 \uff0c \u56e0\u6b64 \u5728 HUD \u548c \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \u96be\u4ee5 \u5206\u79bb \u7684 \u67d0\u4e9b \u7c7b\u578b \u6e38\u620f \u4e2d \uff0c \u8fd9\u4e9b \u5143\u7d20 \u4f1a \u663e\u793a \u4e3a \u7070\u8272 \u533a\u57df \u3002","title":"Ref cpp"},{"location":"ref_cpp/#c","text":"","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#c_1","text":"C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u5728 Linux \u4e0a\u7528 make \u6784\u5efa \uff0c \u5728 Windows \u4e0a\u7528 cmake \u6784\u5efa \u3002 CARLA _ ROOT / Examples / CppClient / main . cpp \u4e2d \u7684 \u5b58\u50a8 \u5e93\u4e2d \u63d0\u4f9b \u4e86 \u4e00\u4e2a C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u3002 \u8fd9\u4e2a \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u5c06 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76 \u4f7f\u7528 API \u6267\u884c \u4e00\u4e9b \u7b80\u5355 \u7684 \u4efb\u52a1 \u3002 \u8981 \u6784\u5efa \u793a\u4f8b C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8bf7 \u5728 \u5b58\u50a8 \u5e93 \u7684 CARLA _ ROOT / Examples / CppClient \u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make \uff0c \u7136\u540e \u6267\u884c . / bin / cpp _ client \u6765 \u8fd0\u884c \u793a\u4f8b \u3002 \u8be5 \u793a\u4f8b \u5c06 \u4ece \u53ef\u7528 \u5730\u56fe \u4e2d \u9009\u62e9 \u4e00\u4e2a \u968f\u673a \u5730\u56fe \uff0c \u7136\u540e \u52a0\u8f7d \u5b83 \u3002 \u7136\u540e \uff0c \u5b83 \u5c06 \u751f\u6210 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5e76 \u5bf9 \u8be5\u8f66 \u5e94\u7528 \u63a7\u5236 \u3002 \u6709\u5173 \u6b64 \u793a\u4f8b \u811a\u672c \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u3001 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002","title":"C++ \u5ba2\u6237\u7aef"},{"location":"ref_cpp/#c_2","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 \u3002 \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002","title":"C++ \u6587\u6863"},{"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_cpp/#c_3","text":"\u5728 vs2019 \u4e2d \u70b9\u51fb \u83dc\u5355 \u6587\u4ef6 - > \u6253\u5f00 - > CMake \uff0c \u6253\u5f00 Examples \\ CppClient \\ CMakeLists . txt \uff1b \u70b9\u51fb \u7ba1\u7406 \u914d\u7f6e \uff0c \u6dfb\u52a0 \u65b0 \u7684 \u914d\u7f6e x64 - release \uff1b \uff08 \u6ce8\u610f \uff1a x64 - Debug \u8fd8\u6709 \u95ee\u9898 \uff09 \uff1b \u542f\u52a8 Carla \u670d\u52a1 \u670d\u52a1\u7aef \u540e \uff0c \u5728 vs2019 \u4e2d \u70b9\u51fb \u8c03\u8bd5 - > \u5f00\u59cb \u6267\u884c \u3002","title":"C++ \u5ba2\u6237\u7aef \u8fd0\u884c"},{"location":"ref_cpp/#_1","text":"HUD : Heads - up Displays , \u5934\u663e \u3002 \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \uff08 UI \uff09 \u548c \u5934\u663e \uff08 HUD \uff09 \u662f \u6e38\u620f \u5411 \u73a9\u5bb6 \u63d0\u4f9b \u6e38\u620f \u4fe1\u606f \u4ee5\u53ca \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \u5141\u8bb8 \u73a9\u5bb6 \u4e0e \u6e38\u620f \u4e92\u52a8 \u7684 \u65b9\u5f0f \u3002 HUD \u6307 \u7684 \u662f \u6e38\u620f \u671f\u95f4 \u5728 \u5c4f\u5e55 \u4e0a \u8986\u76d6 \u7684 \u72b6\u6001 \u548c \u4fe1\u606f \u3002 HUD \u7684 \u76ee\u7684 \u662f \u544a\u77e5 \u73a9\u5bb6 \u5f53\u524d \u6e38\u620f \u72b6\u6001 \uff0c \u5373 \u5206\u6570 \u3001 \u751f\u547d \u503c \u3001 \u6e38\u620f \u5269\u4f59 \u65f6\u95f4 \u5269\u4f59\u65f6\u95f4 \u7b49 \u3002 HUD \u901a\u5e38 \u662f \u4e0d\u53ef \u4e92\u52a8 \u7684 \uff0c \u610f\u5473 \u610f\u5473\u7740 \u73a9\u5bb6 \u4e0d\u80fd \u5355\u51fb HUD \u7684 \u5143\u7d20 \uff0c \u56e0\u6b64 \u5728 HUD \u548c \u7528\u6237 \u754c\u9762 \u7528\u6237\u754c\u9762 \u96be\u4ee5 \u5206\u79bb \u7684 \u67d0\u4e9b \u7c7b\u578b \u6e38\u620f \u4e2d \uff0c \u8fd9\u4e9b \u5143\u7d20 \u4f1a \u663e\u793a \u4e3a \u7070\u8272 \u533a\u57df \u3002","title":"\u9605\u8bfb"},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u9500\u6bc1 \u3002","title":"Ref recorder binary file format"},{"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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u9500\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 \u538b\u7ebf \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 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u611f\u77e5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd 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 \u8282\u62cd \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 \u5317\u662f 0 \u5f27\u5ea6 \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 \u6ce8\u610f \u5bf9\u4e8e \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \uff0c \u5317\u4e3a 0 \u5f27\u5ea6 \u3002 \u4e1c\u4e3a pi / 2 \u5f27\u5ea6 \uff0c \u5357\u4e3a pi \u5f27\u5ea6 \uff0c \u897f\u4e3a 3 pi / 2 \u5f27\u5ea6 \u3002 \u5728 Carla \u7684 \u5168\u5c40 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \uff0c \u5317\u4e3a Y \u8f74 \u51cf\u5c0f \u7684 \u65b9\u5411 \u3002 \u4e1c\u4e3a X \u8f74 \u589e\u52a0 \u7684 \u65b9\u5411 \u3002 \u8f6c\u6362 \u4e3a \u5ea6\u6570 \u7684 \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u503c \u7b49\u4e8e 90 - \u504f\u822a \u3002 \u538b\u7ebf \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 \u8282\u62cd \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 \u8282\u62cd \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 # \u4e3a\u4e86 \u83b7\u5f97 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 \u8282\u62cd \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 \u8282\u62cd \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 # rss _ sensor . py \u4ee3\u7801 \u7247\u6bb5 # 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 # \u66f4\u65b0 \u5f53\u524d \u8def\u7ebf 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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 # rss _ sensor . py \u4ee3\u7801 \u7247\u6bb5 # \u6ce8\u518c \u8be5 \u51fd\u6570 \u4e3a 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 : # \u4e3a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u5236 actor _ constellation _ result ... else : # \u9ed8\u8ba4 ... 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 \u8282\u62cd \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \uff08 \u6ce8\u610f \uff1a \u4ece \u7248\u672c 0.9 . 13 \u5230 0.9 . 14 \u6570\u5b57 \u6240 \u5bf9\u5e94 \u7684 \u6807\u7b7e \u53d1\u751f \u4e86 \u5f88\u5927 \u53d8\u5316 \uff09 \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 Roads ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u6bd4\u5982 \uff0c \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 2 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 3 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 \u3002 4 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 5 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 6 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 7 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 8 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 ... 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 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 11 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 12 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 13 Rider ( 0 , 0 , 142 ) \u4eba\u7c7b \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u3002 \u4f8b\u5982 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u8f6e\u6ed1 \u3001 \u8f6e\u6905 \u7b49 \u3002 14 Car ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u5927\u84ec \u8d27\u8f66 15 Truck ( 0 , 0 , 70 ) \u5361\u8f66 16 Bus ( 0 , 60 , 100 ) \u516c\u4ea4 \u516c\u4ea4\u8f66 17 Truck ( 0 , 80 , 100 ) \u706b\u8f66 18 Motorcycle ( 0 , 0 , 230 ) \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 19 Bicycle ( 119 , 11 , 32 ) \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 20 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 21 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 22 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 23 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 24 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 25 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 26 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 27 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 28 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \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 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . instance _ segmentation \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u4e00\u4e2a carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u76f8\u673a \u6839\u636e \u7c7b\u522b \u548c \u5b9e\u4f8b ID \u5bf9 \u89c6\u91ce \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u8fdb\u884c \u5206\u7c7b \u3002 \u5f53 \u6a21\u62df \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u88ab \u521b\u5efa \u4e3a \u4e00\u4e2a \u6807\u7b7e \u3002 \u56e0\u6b64 \uff0c \u5f53 \u751f\u6210 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6839\u636e \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u7f51\u683c \u88ab \u6807\u8bb0 \u4e3a \u884c\u4eba Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u4e00\u5f20 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u4e86 \u6807\u7b7e \u4fe1\u606f \u7684 \u56fe\u50cf \uff1a \u7ea2\u8272 \u503c\u4e3a x \u7684 \u50cf\u7d20 \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e x \u7684 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u7684 \u7eff\u8272 \u548c \u84dd\u8272 \u503c \u5b9a\u4e49 \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 \u4f8b\u5982 \uff0c 8 \u4f4d RGB \u503c\u4e3a [ 10 , 20 , 55 ] \u7684 \u50cf\u7d20 \u662f \u4e00\u8f86 \u5177\u6709 \u552f\u4e00 \u5b9e\u4f8b ID 20 - 55 \u7684 \u8f66\u8f86 \uff08 \u8bed\u4e49 \u6807\u7b7e \u4e3a 10 \uff09 \u3002 \u57fa\u672c \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \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 \u6a21\u62df \u79d2\u6570 \uff08 \u8282\u62cd \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \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 \u6d4b\u91cf \u53d1\u751f \u65f6 \u7684 \u5e27 \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 \u6570\u7ec4 \u3002 timestamp double \u81ea \u60c5\u8282 \u5f00\u59cb \u4ee5\u6765 \u7684 \u6d4b\u91cf \u6a21\u62df \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \uff08 Dynamic Vision Sensor , DVS \uff09 \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 \u5206\u8d1d \u5bf9 60 \u5206\u8d1d \uff08 dB , \u5341\u5206 \u4e4b\u4e00 \u5341\u5206\u4e4b\u4e00 decibel Bell \uff0c \u8d1d \u8868\u793a \u7684 \u662f \u4e24\u4e2a \u7269\u7406 \u7269\u7406\u91cf \u7684 \u6bd4\u503c \uff0c \u57fa\u51c6 \u57fa\u51c6\u503c \u7528 \u5206\u8d1d \u8868\u793a \u7684\u8bdd \u662f 0dB \uff09 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 L \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 t \u5904 \u7684 \u50cf\u7d20 x , y \u5904 \u89e6\u53d1 \u4e8b\u4ef6 e = ( x , y , t , pol ) \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 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u6765 \u5224\u65ad \u4e8b\u4ef6 \u7684 \u6781\u6027 ( polarity ) \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 t \u8d85\u8fc7 \u4e00\u7ef4 x \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 ( contrast ) \u9608\u503c C \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \uff0c \u8303\u56f4 \u4e3a ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C \uff0c \u8303\u56f4 \u4e3a ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u6b63 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee \uff0c \u8303\u56f4 \u4e3a ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee \uff0c \u8303\u56f4 \u4e3a ( 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 \u523b\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5bf9\u6570 \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 \u8282\u62cd \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 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u8054 \u4e07\u7269 ( Vehicle - to - everything , V2X ) \u901a\u4fe1 \u662f \u672a\u6765 \u534f\u4f5c \u667a\u80fd \u4ea4\u901a \u7cfb\u7edf \u4ea4\u901a\u7cfb\u7edf \u5e94\u7528 \u7684 \u4e00\u4e2a \u91cd\u8981 \u65b9\u9762 \u3002 \u5728 \u5b9e\u9645 \u8f66\u8f86 \u4e2d \uff0c \u8fd9 \u9700\u8981 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0a \u90fd \u6709 \u4e00\u4e2a \u4e13\u7528 \u7684 \u8f66\u8f7d \u5355\u5143 ( onboard unit , OBU ) \uff0c \u80fd\u591f \u901a\u8fc7 \u65e0\u7ebf \u4fe1\u9053 \u53d1\u9001 \u548c \u63a5\u6536 \u4fe1\u606f \u3002 \u6839\u636e \u5730\u533a \uff08 \u6b27\u6d32 \u3001 \u4e2d\u56fd \u3001 \u7f8e\u56fd \uff09 \uff0c \u4f7f\u7528 \u4e0d\u540c \u7684 \u7269\u7406 \u6280\u672f \u3001 \u534f\u8bae \u548c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6d88\u606f \u683c\u5f0f \u3002 CARLA \u76ee\u524d \u652f\u6301 \u6a21\u62df \u7b80\u5355 \u7684 \u5e7f\u64ad \u65e0\u7ebf \u4fe1\u9053 \u548c \u4e24\u6761 \u5e94\u7528 \u6d88\u606f \u3002 \u5c1a \u4e0d \u652f\u6301 \u7f51\u7edc \u8bbf\u95ee \u548c \u8f6c\u53d1 \u534f\u8bae \u3002 \u4e24\u6761 \u5b9e\u73b0 \u7684 \u6d88\u606f \u5206\u522b \u662f \u7b26\u5408 \u6b27\u6d32 \u6807\u51c6 ETSI \u7684 \u534f\u4f5c \u611f\u77e5 \u6d88\u606f \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u7c7b\u578b \uff0c \u53ef \u7528\u4e8e \u4f20\u8f93 \u4efb\u610f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6570\u636e \uff08 \u4f8b\u5982 JSON \uff09 \u3002 V2X \u901a\u4fe1 \u6709 \u4e24\u79cd \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef\u4ee5 \u5355\u72ec \u4f7f\u7528 \uff0c \u6bcf\u79cd \u5e94\u7528 \u6d88\u606f \u7c7b\u578b \u5404 \u4e00\u4e2a \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u65e0\u7ebf \u901a\u9053 \u5305\u542b \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4ee5\u4e0b \u8ba1\u7b97 \uff1a ReceivedPower = OtherTransmitPower + combined _ antenna _ gain - loss IF ( ReceivedPower > = receiver _ sensitivity ) THEN message is received \u8981 \u6a21\u62df V2X \u901a\u4fe1 \uff0c \u81f3\u5c11 \u9700\u8981 \u751f\u6210 \u4e24\u4e2a \u76f8\u540c \u7c7b\u578b \u7684 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u81f3\u5c11 \u4e00\u5bf9 \u53d1\u9001 \u53d1\u9001\u5668 - \u63a5\u6536 \u63a5\u6536\u5668 \uff09 \u3002 \u7531\u4e8e \u63a5\u6536 \u529f\u7387 \u662f \u5728 \u63a5\u6536 \u63a5\u6536\u5668 \u7aef V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0a \u8ba1\u7b97 \u7684 \uff0c \u56e0\u6b64 \u53ea\u6709 \u63a5\u6536 \u63a5\u6536\u5668 \u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0a \u6307\u5b9a \u7684 \u5929\u7ebf \u589e\u76ca \u624d \u4f1a \u7eb3\u5165 \u6b64 \u8ba1\u7b97 \u4e2d \u3002 \u53ef\u4ee5 \u914d\u7f6e \u4f20\u8f93 \u529f\u7387 \u548c \u63a5\u6536 \u63a5\u6536\u5668 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 \u84dd\u56fe \u5c5e\u6027 \uff09 \u3002 \u635f\u8017 \u8ba1\u7b97 \u53d6\u51b3 \u53d6\u51b3\u4e8e - \u53d1\u9001 \u65b9 \u548c \u63a5\u6536 \u65b9 \u4e4b\u95f4 \u7684 \u53ef\u89c1 \u6027 \u6761\u4ef6 \uff1a \u89c6\u7ebf \uff08 \u65e0 \u969c\u788d \u969c\u788d\u7269 \uff09 \u3001 \u88ab \u5efa\u7b51 \u5efa\u7b51\u7269 \u906e\u6321 \u7684 \u975e \u89c6\u7ebf \u6216 \u88ab \u8f66\u8f86 \u906e\u6321 \u7684 \u975e \u89c6\u7ebf \uff0c \u4ee5\u53ca - \u573a\u666f \uff1a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u4e61\u6751 \u6216 \u57ce\u5e02 \u73af\u5883 \u867d\u7136 \u5728 CARLA \u4e2d \u6a21\u62df \u4e86 \u53ef\u89c1 \u6027 \uff0c \u4f46 \u7528\u6237 \u53ef\u4ee5 \u914d\u7f6e \u573a\u666f \uff08 \u53c2\u89c1 \u84dd\u56fe \u5c5e\u6027 \uff09 \uff0c \u4ee5\u53ca \u65e0\u7ebf \u4fe1\u9053 \u7684 \u5176\u4ed6 \u51e0\u4e2a \u5c5e\u6027 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u5b50 \uff09 \u7c7b\u578b \u534f\u540c \u611f\u77e5 \u6d88\u606f \u84dd\u56fe \uff1a sensor . other . v2x \u8f93\u51fa \uff1a carla . CAMData , \u6839\u636e ETSI CAM ( European Telecommunications Standards Institute , Cooperative Awareness Message \uff0c \u6b27\u6d32 \u901a\u4fe1 \u6807\u51c6 \u534f\u4f1a \uff0c \u534f\u540c \u8b66\u793a \u6d88\u606f ) \u6807\u51c6 \u89e6\u53d1 \uff0c \u9664\u975e \u53e6\u6709 \u914d\u7f6e \u6839\u636e ETSI \u6807\u51c6 \u7684 \u89e6\u53d1 \u6761\u4ef6 \uff1a - \u822a\u5411 \u89d2 \u53d8\u5316 > $ 4 $ \u00b0 - \u4f4d\u7f6e \u5dee > $ 4 $ m - \u901f\u5ea6 \u53d8\u5316 > $ 5 $ m / s - \u7ecf\u8fc7 \u65f6\u95f4 > CAM \u751f\u6210 \u65f6\u95f4 \uff08 \u53ef \u914d\u7f6e \uff09 - \u4f4e\u9891 \u5bb9\u5668 \u7ecf\u8fc7 \u65f6\u95f4 $ > 500 $ ms \u5bf9\u4e8e CAM V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u9002\u7528 \u5176\u4ed6 \u84dd\u56fe \u5c5e\u6027 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63cf\u8ff0 \u6d88\u606f \u751f\u6210 gen _ cam _ min float $ 0.1 $ \u4e24\u4e2a \u8fde\u7eed CAM \u4e4b\u95f4 \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u95f4\u9694 \uff08 \u79d2 \uff09 gen _ cam _ max float $ 1.0 $ \u4e24\u4e2a \u8fde\u7eed CAM \u4e4b\u95f4 \u7684 \u6700\u5927 \u65f6\u95f4 \u95f4\u9694 \uff08 \u79d2 \uff09 fixed _ rate bool false [ true ] \u5728 \u6bcf\u4e2a Carla \u8282\u62cd \u4e2d \u751f\u6210 \u4e00\u4e2a CAM \uff08 \u4ec5 \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \uff0c \u4f1a \u5bfc\u81f4 \u901f\u5ea6 \u53d8\u6162 \uff09 \u6570\u636e \u751f\u6210 noise _ vel _ stddev _ x float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u901f\u5ea6 \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 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 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \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 _ yawrate _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u504f\u822a \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ yawrate _ stddev float 0.0 \u504f\u822a \u901f\u5ea6 \u89d2\u901f\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ alt _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u6d77\u62d4 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \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 \u6807\u51c6\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u7ecf\u5ea6 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u7ecf\u5ea6 \u7684 \u6807\u51c6 \u6807\u51c6\u5dee \u53c2\u6570 \u3002 noise _ head _ bias float 0.0 \u822a\u5411 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ head _ stddev float 0.0 \u822a\u5411 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u84dd\u56fe \uff1a sensor . other . v2x _ custom \u8f93\u51fa \uff1a carla . CustomV2XData \uff0c \u5728 \u8c03\u7528 send ( ) \u540e \u89e6\u53d1 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f \u65b9\u6cd5 send ( self , callback ) \u7528\u6237 \u6bcf\u6b21 \u53d1\u9001 \u6d88\u606f \u65f6 \u5fc5\u987b \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u6765 \u5904\u7406 \u3002 \u53c2\u6570 \uff1a data ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u5e26\u6709 \u4e00\u4e2a \u5305\u542b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u7684 \u53c2\u6570 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u56e0\u4e3a \u5b83 \u9664\u4e86 \u4fa6\u542c \u51fd\u6570 \u4e4b\u5916 \u8fd8 \u5177\u6709 \u53d1\u9001 \u51fd\u6570 \uff0c \u9700\u8981 \u5148 \u8c03\u7528 \u53d1\u9001 \u51fd\u6570 \uff0c \u7136\u540e \u5176\u4ed6 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u624d\u80fd \u63a5\u6536 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u53ea\u6709 \u5728 \u8c03\u7528 \u53d1\u9001 \u65f6\u624d \u4f1a \u89e6\u53d1 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u7684 \u4f20\u8f93 \u3002 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u53d1\u9001 \u51fd\u6570 \u7684 \u6bcf\u6761 \u6d88\u606f \u4ec5 \u5411 \u5f53\u524d \u751f\u6210 \u7684 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u8f93 \u4e00\u6b21 \u3002 \u793a\u4f8b \uff1a bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . v2x _ custom ' ) sensor = world . spawn _ actor ( bp , carla . Transform ( ) , attach _ to = parent ) sensor . send ( \" Hello CARLA \" ) V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63cf\u8ff0 transmit _ power float $ 21.5 $ \u53d1\u9001 \u65b9 \u4f20\u8f93 \u529f\u7387 \uff08 \u5355\u4f4d \uff1a dBm \uff09 receiver _ sensitivity float $ - 99 $ \u63a5\u6536 \u63a5\u6536\u5668 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \uff08 \u5355\u4f4d \uff1a dBm \uff09 frequency _ ghz float $ 5.9 $ \u4f20\u8f93 \u9891\u7387 \uff08 GHz \uff09 \u3002 5.9 GHz \u662f \u591a\u4e2a \u7269\u7406 \u4fe1\u9053 \u7684 \u6807\u51c6 \u3002 noise _ seed int $ 0 $ \u566a\u58f0 \u521d\u59cb \u521d\u59cb\u5316 \u7684 \u968f\u673a \u53c2\u6570 filter _ distance float $ 500 $ \u6700\u5927 \u4f20\u8f93 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \uff0c \u4e0a\u9762 \u7684 \u8def\u5f84 \u635f\u8017 \u8ba1\u7b97 \u56e0 \u6a21\u62df \u901f\u5ea6 \u800c \u7565\u8fc7 \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u53c2\u6570 combined _ antenna _ gain float $ 10.0 $ \u53d1\u5c04 \u53d1\u5c04\u673a \u548c \u63a5\u6536 \u63a5\u6536\u673a \u5929\u7ebf \u7684 \u7ec4\u5408 \u589e\u76ca \uff08 \u4ee5 dBi \u4e3a \u5355\u4f4d \uff09 \uff0c \u8f90\u5c04 \u6548\u7387 \u8f90\u5c04\u6548\u7387 \u548c \u65b9\u5411 \u5411\u6027 \u65b9\u5411\u6027 \u7684 \u53c2\u6570 d _ ref float $ 1.0 $ \u5bf9\u6570 \u8ddd\u79bb \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u7684 \u53c2\u8003 \u8ddd\u79bb \uff08 \u5355\u4f4d \uff1a \u7c73 \uff09 path _ loss _ exponent float 2.7 \u7531\u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u906e\u6321 \u5bfc\u81f4 \u7684 \u975e \u89c6\u8ddd \u635f\u8017 \u53c2\u6570 scenario string urban \u9009\u9879 \uff1a [ urban , rustic , highly available ] \uff0c \u5b9a\u4e49 \u8870\u843d \u566a\u58f0 \u53c2\u6570 path _ loss _ model string geometric \u4f7f\u7528 \u7684 \u901a\u7528 \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u3002 \u9009\u9879 \uff1a [ geometric , winor ] use _ etsi _ fading bool true \u4f7f\u7528 ETSI \u51fa\u7248 \u51fa\u7248\u7269 \u4e2d \u63d0\u5230 \u7684 \u8870\u843d \u53c2\u6570 \uff08 true \uff09 \uff0c \u6216 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8870\u843d \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee custom _ fading _ stddev float 0.0 \u8870\u51cf \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \uff0c \u4ec5\u5f53 use _ etsi _ fading \u8bbe\u7f6e \u4e3a false \u65f6\u624d \u4f7f\u7528","title":"Ref sensors"},{"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 \u538b\u7ebf \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 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u611f\u77e5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \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 \u8282\u62cd \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 \u8282\u62cd \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 \u8282\u62cd 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 \u8282\u62cd \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 \u5317\u662f 0 \u5f27\u5ea6 \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 \u6ce8\u610f \u5bf9\u4e8e \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \uff0c \u5317\u4e3a 0 \u5f27\u5ea6 \u3002 \u4e1c\u4e3a pi / 2 \u5f27\u5ea6 \uff0c \u5357\u4e3a pi \u5f27\u5ea6 \uff0c \u897f\u4e3a 3 pi / 2 \u5f27\u5ea6 \u3002 \u5728 Carla \u7684 \u5168\u5c40 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \uff0c \u5317\u4e3a Y \u8f74 \u51cf\u5c0f \u7684 \u65b9\u5411 \u3002 \u4e1c\u4e3a X \u8f74 \u589e\u52a0 \u7684 \u65b9\u5411 \u3002 \u8f6c\u6362 \u4e3a \u5ea6\u6570 \u7684 \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u503c \u7b49\u4e8e 90 - \u504f\u822a \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":"\u538b\u7ebf \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 \u8282\u62cd \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 \u8282\u62cd \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 # \u4e3a\u4e86 \u83b7\u5f97 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 \u8282\u62cd \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 \u8282\u62cd \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 # rss _ sensor . py \u4ee3\u7801 \u7247\u6bb5 # 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 # \u66f4\u65b0 \u5f53\u524d \u8def\u7ebf 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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f \u8d23\u4efb \u654f\u611f \u5b89\u5168 \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 # rss _ sensor . py \u4ee3\u7801 \u7247\u6bb5 # \u6ce8\u518c \u8be5 \u51fd\u6570 \u4e3a 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 : # \u4e3a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u5236 actor _ constellation _ result ... else : # \u9ed8\u8ba4 ... 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 \u8282\u62cd \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \uff08 \u6ce8\u610f \uff1a \u4ece \u7248\u672c 0.9 . 13 \u5230 0.9 . 14 \u6570\u5b57 \u6240 \u5bf9\u5e94 \u7684 \u6807\u7b7e \u53d1\u751f \u4e86 \u5f88\u5927 \u53d8\u5316 \uff09 \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 Roads ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u6bd4\u5982 \uff0c \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 2 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 3 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 \u3002 4 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 5 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 6 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 7 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 8 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 ... 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 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 11 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 12 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 13 Rider ( 0 , 0 , 142 ) \u4eba\u7c7b \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u3002 \u4f8b\u5982 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u8f6e\u6ed1 \u3001 \u8f6e\u6905 \u7b49 \u3002 14 Car ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u5927\u84ec \u8d27\u8f66 15 Truck ( 0 , 0 , 70 ) \u5361\u8f66 16 Bus ( 0 , 60 , 100 ) \u516c\u4ea4 \u516c\u4ea4\u8f66 17 Truck ( 0 , 80 , 100 ) \u706b\u8f66 18 Motorcycle ( 0 , 0 , 230 ) \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 19 Bicycle ( 119 , 11 , 32 ) \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 20 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 21 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 22 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 23 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 24 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 25 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 26 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 27 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 28 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \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/#_36","text":"\u84dd\u56fe \uff1a sensor . camera . instance _ segmentation \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u4e00\u4e2a carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u76f8\u673a \u6839\u636e \u7c7b\u522b \u548c \u5b9e\u4f8b ID \u5bf9 \u89c6\u91ce \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u8fdb\u884c \u5206\u7c7b \u3002 \u5f53 \u6a21\u62df \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u88ab \u521b\u5efa \u4e3a \u4e00\u4e2a \u6807\u7b7e \u3002 \u56e0\u6b64 \uff0c \u5f53 \u751f\u6210 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6839\u636e \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u7f51\u683c \u88ab \u6807\u8bb0 \u4e3a \u884c\u4eba Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u4e00\u5f20 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u4e86 \u6807\u7b7e \u4fe1\u606f \u7684 \u56fe\u50cf \uff1a \u7ea2\u8272 \u503c\u4e3a x \u7684 \u50cf\u7d20 \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e x \u7684 \u5bf9\u8c61 \u3002 \u50cf\u7d20 \u7684 \u7eff\u8272 \u548c \u84dd\u8272 \u503c \u5b9a\u4e49 \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 \u4f8b\u5982 \uff0c 8 \u4f4d RGB \u503c\u4e3a [ 10 , 20 , 55 ] \u7684 \u50cf\u7d20 \u662f \u4e00\u8f86 \u5177\u6709 \u552f\u4e00 \u5b9e\u4f8b ID 20 - 55 \u7684 \u8f66\u8f86 \uff08 \u8bed\u4e49 \u6807\u7b7e \u4e3a 10 \uff09 \u3002","title":"\u5b9e\u4f8b \u5206\u5272 \u76f8\u673a "},{"location":"ref_sensors/#_37","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \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 \u6a21\u62df \u79d2\u6570 \uff08 \u8282\u62cd \uff09 \u3002","title":"\u57fa\u672c \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_38","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \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/#_39","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 \u6d4b\u91cf \u53d1\u751f \u65f6 \u7684 \u5e27 \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 \u6570\u7ec4 \u3002 timestamp double \u81ea \u60c5\u8282 \u5f00\u59cb \u4ee5\u6765 \u7684 \u6d4b\u91cf \u6a21\u62df \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/#_40","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 \uff08 Dynamic Vision Sensor , DVS \uff09 \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 \u5206\u8d1d \u5bf9 60 \u5206\u8d1d \uff08 dB , \u5341\u5206 \u4e4b\u4e00 \u5341\u5206\u4e4b\u4e00 decibel Bell \uff0c \u8d1d \u8868\u793a \u7684 \u662f \u4e24\u4e2a \u7269\u7406 \u7269\u7406\u91cf \u7684 \u6bd4\u503c \uff0c \u57fa\u51c6 \u57fa\u51c6\u503c \u7528 \u5206\u8d1d \u8868\u793a \u7684\u8bdd \u662f 0dB \uff09 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 L \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 t \u5904 \u7684 \u50cf\u7d20 x , y \u5904 \u89e6\u53d1 \u4e8b\u4ef6 e = ( x , y , t , pol ) \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 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u6765 \u5224\u65ad \u4e8b\u4ef6 \u7684 \u6781\u6027 ( polarity ) \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 t \u8d85\u8fc7 \u4e00\u7ef4 x \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 ( contrast ) \u9608\u503c C \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \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":"\u52a8\u6001 \u89c6\u89c9 \u4f20\u611f\u5668 \u76f8\u673a "},{"location":"ref_sensors/#_41","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 \uff0c \u8303\u56f4 \u4e3a ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C \uff0c \u8303\u56f4 \u4e3a ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u6b63 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee \uff0c \u8303\u56f4 \u4e3a ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee \uff0c \u8303\u56f4 \u4e3a ( 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 \u523b\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5bf9\u6570 \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":"\u52a8\u6001 \u89c6\u89c9 \u4f20\u611f\u5668 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_42","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/#_43","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 \u8282\u62cd \uff09 \u3002","title":"\u5149\u6d41 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_44","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/#_45","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":"ref_sensors/#v2x","text":"\u8f66\u8054 \u4e07\u7269 ( Vehicle - to - everything , V2X ) \u901a\u4fe1 \u662f \u672a\u6765 \u534f\u4f5c \u667a\u80fd \u4ea4\u901a \u7cfb\u7edf \u4ea4\u901a\u7cfb\u7edf \u5e94\u7528 \u7684 \u4e00\u4e2a \u91cd\u8981 \u65b9\u9762 \u3002 \u5728 \u5b9e\u9645 \u8f66\u8f86 \u4e2d \uff0c \u8fd9 \u9700\u8981 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0a \u90fd \u6709 \u4e00\u4e2a \u4e13\u7528 \u7684 \u8f66\u8f7d \u5355\u5143 ( onboard unit , OBU ) \uff0c \u80fd\u591f \u901a\u8fc7 \u65e0\u7ebf \u4fe1\u9053 \u53d1\u9001 \u548c \u63a5\u6536 \u4fe1\u606f \u3002 \u6839\u636e \u5730\u533a \uff08 \u6b27\u6d32 \u3001 \u4e2d\u56fd \u3001 \u7f8e\u56fd \uff09 \uff0c \u4f7f\u7528 \u4e0d\u540c \u7684 \u7269\u7406 \u6280\u672f \u3001 \u534f\u8bae \u548c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6d88\u606f \u683c\u5f0f \u3002 CARLA \u76ee\u524d \u652f\u6301 \u6a21\u62df \u7b80\u5355 \u7684 \u5e7f\u64ad \u65e0\u7ebf \u4fe1\u9053 \u548c \u4e24\u6761 \u5e94\u7528 \u6d88\u606f \u3002 \u5c1a \u4e0d \u652f\u6301 \u7f51\u7edc \u8bbf\u95ee \u548c \u8f6c\u53d1 \u534f\u8bae \u3002 \u4e24\u6761 \u5b9e\u73b0 \u7684 \u6d88\u606f \u5206\u522b \u662f \u7b26\u5408 \u6b27\u6d32 \u6807\u51c6 ETSI \u7684 \u534f\u4f5c \u611f\u77e5 \u6d88\u606f \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u7c7b\u578b \uff0c \u53ef \u7528\u4e8e \u4f20\u8f93 \u4efb\u610f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6570\u636e \uff08 \u4f8b\u5982 JSON \uff09 \u3002 V2X \u901a\u4fe1 \u6709 \u4e24\u79cd \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef\u4ee5 \u5355\u72ec \u4f7f\u7528 \uff0c \u6bcf\u79cd \u5e94\u7528 \u6d88\u606f \u7c7b\u578b \u5404 \u4e00\u4e2a \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u65e0\u7ebf \u901a\u9053 \u5305\u542b \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4ee5\u4e0b \u8ba1\u7b97 \uff1a ReceivedPower = OtherTransmitPower + combined _ antenna _ gain - loss IF ( ReceivedPower > = receiver _ sensitivity ) THEN message is received \u8981 \u6a21\u62df V2X \u901a\u4fe1 \uff0c \u81f3\u5c11 \u9700\u8981 \u751f\u6210 \u4e24\u4e2a \u76f8\u540c \u7c7b\u578b \u7684 V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u81f3\u5c11 \u4e00\u5bf9 \u53d1\u9001 \u53d1\u9001\u5668 - \u63a5\u6536 \u63a5\u6536\u5668 \uff09 \u3002 \u7531\u4e8e \u63a5\u6536 \u529f\u7387 \u662f \u5728 \u63a5\u6536 \u63a5\u6536\u5668 \u7aef V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0a \u8ba1\u7b97 \u7684 \uff0c \u56e0\u6b64 \u53ea\u6709 \u63a5\u6536 \u63a5\u6536\u5668 \u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0a \u6307\u5b9a \u7684 \u5929\u7ebf \u589e\u76ca \u624d \u4f1a \u7eb3\u5165 \u6b64 \u8ba1\u7b97 \u4e2d \u3002 \u53ef\u4ee5 \u914d\u7f6e \u4f20\u8f93 \u529f\u7387 \u548c \u63a5\u6536 \u63a5\u6536\u5668 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \uff08 \u53c2\u9605 \u8bf7\u53c2\u9605 \u84dd\u56fe \u5c5e\u6027 \uff09 \u3002 \u635f\u8017 \u8ba1\u7b97 \u53d6\u51b3 \u53d6\u51b3\u4e8e - \u53d1\u9001 \u65b9 \u548c \u63a5\u6536 \u65b9 \u4e4b\u95f4 \u7684 \u53ef\u89c1 \u6027 \u6761\u4ef6 \uff1a \u89c6\u7ebf \uff08 \u65e0 \u969c\u788d \u969c\u788d\u7269 \uff09 \u3001 \u88ab \u5efa\u7b51 \u5efa\u7b51\u7269 \u906e\u6321 \u7684 \u975e \u89c6\u7ebf \u6216 \u88ab \u8f66\u8f86 \u906e\u6321 \u7684 \u975e \u89c6\u7ebf \uff0c \u4ee5\u53ca - \u573a\u666f \uff1a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u4e61\u6751 \u6216 \u57ce\u5e02 \u73af\u5883 \u867d\u7136 \u5728 CARLA \u4e2d \u6a21\u62df \u4e86 \u53ef\u89c1 \u6027 \uff0c \u4f46 \u7528\u6237 \u53ef\u4ee5 \u914d\u7f6e \u573a\u666f \uff08 \u53c2\u89c1 \u84dd\u56fe \u5c5e\u6027 \uff09 \uff0c \u4ee5\u53ca \u65e0\u7ebf \u4fe1\u9053 \u7684 \u5176\u4ed6 \u51e0\u4e2a \u5c5e\u6027 \u3002","title":"V2X \u4f20\u611f\u5668 "},{"location":"ref_sensors/#_46","text":"","title":"\u4f20\u611f\u5668 \uff08 \u5b50 \uff09 \u7c7b\u578b"},{"location":"ref_sensors/#_47","text":"\u84dd\u56fe \uff1a sensor . other . v2x \u8f93\u51fa \uff1a carla . CAMData , \u6839\u636e ETSI CAM ( European Telecommunications Standards Institute , Cooperative Awareness Message \uff0c \u6b27\u6d32 \u901a\u4fe1 \u6807\u51c6 \u534f\u4f1a \uff0c \u534f\u540c \u8b66\u793a \u6d88\u606f ) \u6807\u51c6 \u89e6\u53d1 \uff0c \u9664\u975e \u53e6\u6709 \u914d\u7f6e \u6839\u636e ETSI \u6807\u51c6 \u7684 \u89e6\u53d1 \u6761\u4ef6 \uff1a - \u822a\u5411 \u89d2 \u53d8\u5316 > $ 4 $ \u00b0 - \u4f4d\u7f6e \u5dee > $ 4 $ m - \u901f\u5ea6 \u53d8\u5316 > $ 5 $ m / s - \u7ecf\u8fc7 \u65f6\u95f4 > CAM \u751f\u6210 \u65f6\u95f4 \uff08 \u53ef \u914d\u7f6e \uff09 - \u4f4e\u9891 \u5bb9\u5668 \u7ecf\u8fc7 \u65f6\u95f4 $ > 500 $ ms \u5bf9\u4e8e CAM V2X \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u9002\u7528 \u5176\u4ed6 \u84dd\u56fe \u5c5e\u6027 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63cf\u8ff0 \u6d88\u606f \u751f\u6210 gen _ cam _ min float $ 0.1 $ \u4e24\u4e2a \u8fde\u7eed CAM \u4e4b\u95f4 \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u95f4\u9694 \uff08 \u79d2 \uff09 gen _ cam _ max float $ 1.0 $ \u4e24\u4e2a \u8fde\u7eed CAM \u4e4b\u95f4 \u7684 \u6700\u5927 \u65f6\u95f4 \u95f4\u9694 \uff08 \u79d2 \uff09 fixed _ rate bool false [ true ] \u5728 \u6bcf\u4e2a Carla \u8282\u62cd \u4e2d \u751f\u6210 \u4e00\u4e2a CAM \uff08 \u4ec5 \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \uff0c \u4f1a \u5bfc\u81f4 \u901f\u5ea6 \u53d8\u6162 \uff09 \u6570\u636e \u751f\u6210 noise _ vel _ stddev _ x float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u901f\u5ea6 \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 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 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \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 _ yawrate _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u504f\u822a \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ yawrate _ stddev float 0.0 \u504f\u822a \u901f\u5ea6 \u89d2\u901f\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ alt _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u6d77\u62d4 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \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 \u6807\u51c6\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u7ecf\u5ea6 \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u4e2d \u7ecf\u5ea6 \u7684 \u6807\u51c6 \u6807\u51c6\u5dee \u53c2\u6570 \u3002 noise _ head _ bias float 0.0 \u822a\u5411 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ head _ stddev float 0.0 \u822a\u5411 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002","title":"\u534f\u540c \u611f\u77e5 \u6d88\u606f "},{"location":"ref_sensors/#v2x_1","text":"\u84dd\u56fe \uff1a sensor . other . v2x _ custom \u8f93\u51fa \uff1a carla . CustomV2XData \uff0c \u5728 \u8c03\u7528 send ( ) \u540e \u89e6\u53d1 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u606f","title":"\u81ea\u5b9a\u4e49 V2X \u6d88\u606f "},{"location":"ref_sensors/#_48","text":"send ( self , callback ) \u7528\u6237 \u6bcf\u6b21 \u53d1\u9001 \u6d88\u606f \u65f6 \u5fc5\u987b \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 \u6b64 \u51fd\u6570 \u9700\u8981 \u4e00\u4e2a \u5305\u542b \u5bf9\u8c61 \u7c7b\u578b carla . SensorData \u7684 \u53c2\u6570 \u6765 \u5904\u7406 \u3002 \u53c2\u6570 \uff1a data ( function ) - \u88ab \u8c03\u7528 \u7684 \u51fd\u6570 \u5e26\u6709 \u4e00\u4e2a \u5305\u542b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u7684 \u53c2\u6570 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u56e0\u4e3a \u5b83 \u9664\u4e86 \u4fa6\u542c \u51fd\u6570 \u4e4b\u5916 \u8fd8 \u5177\u6709 \u53d1\u9001 \u51fd\u6570 \uff0c \u9700\u8981 \u5148 \u8c03\u7528 \u53d1\u9001 \u51fd\u6570 \uff0c \u7136\u540e \u5176\u4ed6 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u624d\u80fd \u63a5\u6536 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u53ea\u6709 \u5728 \u8c03\u7528 \u53d1\u9001 \u65f6\u624d \u4f1a \u89e6\u53d1 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d88\u606f \u7684 \u4f20\u8f93 \u3002 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u53d1\u9001 \u51fd\u6570 \u7684 \u6bcf\u6761 \u6d88\u606f \u4ec5 \u5411 \u5f53\u524d \u751f\u6210 \u7684 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 V2X \u6d88\u606f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u8f93 \u4e00\u6b21 \u3002 \u793a\u4f8b \uff1a bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . v2x _ custom ' ) sensor = world . spawn _ actor ( bp , carla . Transform ( ) , attach _ to = parent ) sensor . send ( \" Hello CARLA \" )","title":"\u65b9\u6cd5"},{"location":"ref_sensors/#v2x_2","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63cf\u8ff0 transmit _ power float $ 21.5 $ \u53d1\u9001 \u65b9 \u4f20\u8f93 \u529f\u7387 \uff08 \u5355\u4f4d \uff1a dBm \uff09 receiver _ sensitivity float $ - 99 $ \u63a5\u6536 \u63a5\u6536\u5668 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \uff08 \u5355\u4f4d \uff1a dBm \uff09 frequency _ ghz float $ 5.9 $ \u4f20\u8f93 \u9891\u7387 \uff08 GHz \uff09 \u3002 5.9 GHz \u662f \u591a\u4e2a \u7269\u7406 \u4fe1\u9053 \u7684 \u6807\u51c6 \u3002 noise _ seed int $ 0 $ \u566a\u58f0 \u521d\u59cb \u521d\u59cb\u5316 \u7684 \u968f\u673a \u53c2\u6570 filter _ distance float $ 500 $ \u6700\u5927 \u4f20\u8f93 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \uff0c \u4e0a\u9762 \u7684 \u8def\u5f84 \u635f\u8017 \u8ba1\u7b97 \u56e0 \u6a21\u62df \u901f\u5ea6 \u800c \u7565\u8fc7 \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u53c2\u6570 combined _ antenna _ gain float $ 10.0 $ \u53d1\u5c04 \u53d1\u5c04\u673a \u548c \u63a5\u6536 \u63a5\u6536\u673a \u5929\u7ebf \u7684 \u7ec4\u5408 \u589e\u76ca \uff08 \u4ee5 dBi \u4e3a \u5355\u4f4d \uff09 \uff0c \u8f90\u5c04 \u6548\u7387 \u8f90\u5c04\u6548\u7387 \u548c \u65b9\u5411 \u5411\u6027 \u65b9\u5411\u6027 \u7684 \u53c2\u6570 d _ ref float $ 1.0 $ \u5bf9\u6570 \u8ddd\u79bb \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u7684 \u53c2\u8003 \u8ddd\u79bb \uff08 \u5355\u4f4d \uff1a \u7c73 \uff09 path _ loss _ exponent float 2.7 \u7531\u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u906e\u6321 \u5bfc\u81f4 \u7684 \u975e \u89c6\u8ddd \u635f\u8017 \u53c2\u6570 scenario string urban \u9009\u9879 \uff1a [ urban , rustic , highly available ] \uff0c \u5b9a\u4e49 \u8870\u843d \u566a\u58f0 \u53c2\u6570 path _ loss _ model string geometric \u4f7f\u7528 \u7684 \u901a\u7528 \u8def\u5f84 \u635f\u8017 \u6a21\u578b \u3002 \u9009\u9879 \uff1a [ geometric , winor ] use _ etsi _ fading bool true \u4f7f\u7528 ETSI \u51fa\u7248 \u51fa\u7248\u7269 \u4e2d \u63d0\u5230 \u7684 \u8870\u843d \u53c2\u6570 \uff08 true \uff09 \uff0c \u6216 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8870\u843d \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee custom _ fading _ stddev float 0.0 \u8870\u51cf \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \uff0c \u4ec5\u5f53 use _ etsi _ fading \u8bbe\u7f6e \u4e3a false \u65f6\u624d \u4f7f\u7528","title":"V2X \u4f20\u611f\u5668 \u84dd\u56fe \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 TrueCompatibleNode \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 \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 \u4eff\u771f 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 TrueCompatibleNode \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002","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 \u4eff\u771f 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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \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 \u538b\u7ebf \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \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 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u8def\u5f84 \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 documentation"},{"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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \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 \u538b\u7ebf \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \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 \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u8def\u5f84 \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 \u6865 \u6587\u6863 \u8fd9\u662f ROS \u6865 \u7684 \u6587\u6863 \uff0c \u5b83 \u5b9e\u73b0 \u4e86 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 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS1 \u548c ROS2 \u90fd \u662f \u76f8\u5bb9 \u7684 \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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 \u96f7\u8fbe \u548c IMU \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u5982 \u53d8\u6362 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u538b\u7ebf \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u5236\u52a8\u5668 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002 \u5f00\u59cb \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 \u7a0b\u5e8f \u7a0b\u5e8f\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u540c\u4e00 API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3 \u4e86\u89e3 \u5176\u4ed6 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 - \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u6362 \u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u8def\u5f84 \u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4e86 \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 \u4e0e Carla Scenario Runner \u4e00\u8d77 \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u66f2 \u63a7\u5236 - \u5c06 \u626d\u66f2 \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ plugin - \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4ece \u4eff\u771f \u4e2d \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 \u63d0\u4f9b \u7684 \u53c2\u8003 \u4e3b\u9898 ROS messages - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"ROS \u6865 \u6587\u6863"},{"location":"ros_index/#ros","text":"\u8fd9\u662f ROS \u6865 \u7684 \u6587\u6863 \uff0c \u5b83 \u5b9e\u73b0 \u4e86 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 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS1 \u548c ROS2 \u90fd \u662f \u76f8\u5bb9 \u7684 \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 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u3001 \u96f7\u8fbe \u548c IMU \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u5982 \u53d8\u6362 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u538b\u7ebf \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u5236\u52a8\u5668 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \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 \u6587\u6863"},{"location":"ros_index/#_1","text":"\u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865","title":"\u5f00\u59cb"},{"location":"ros_index/#ros_1","text":"CARLA \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b \u7a0b\u5e8f \u7a0b\u5e8f\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u540c\u4e00 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_index/#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 - \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u6362 \u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u8def\u5f84 \u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u8def\u5f84 \u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4e86 \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 \u4e0e Carla Scenario Runner \u4e00\u8d77 \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u66f2 \u63a7\u5236 - \u5c06 \u626d\u66f2 \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ plugin - \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4ece \u4eff\u771f \u4e2d \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe","title":"\u4e86\u89e3 \u5176\u4ed6 ROS \u6865\u63a5 \u5305"},{"location":"ros_index/#_2","text":"ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u4e3b\u9898 ROS messages - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"\u63a2\u7d22 \u53c2\u8003\u8d44\u6599"},{"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 2 \u7684 ROS \u6865 \u5b89\u88c5 \u672c\u8282 \u662f \u5173\u4e8e \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u4ee5 \u4e0e ROS 2 \u4e00\u8d77 \u4f7f\u7528 \u7684 \u6307\u5357 \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 \u5de5\u4f5c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 \u9002\u7528 \u4e8e Windows \u7684 ROS \u4ecd \u5728 \u5b9e\u9a8c \u3002 \u5b83 \u53ea \u5728 Linux \u7cfb\u7edf \u4e0a \u8fdb\u884c \u8fc7 \u6d4b\u8bd5 \u3002 \u5f00\u59cb \u4e4b\u524d \u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u5b89\u88c5 ROS : ROS 2 Foxy \u2014 \u9488\u5bf9 Ubuntu 20.04 ( Focal ) - \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u662f \u7528 rviz \u5c06 ROS \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 CARLA 0.9 . 11 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u9075\u5faa \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216\u8005 \u4e3a Linux \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e CARLA \u7248\u672c \u5339\u914d \u76f8\u5339\u914d \u3002 ROS \u6865 \u5b89\u88c5 \u6ce8\u610f Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \u8fd8 \u4e0d\u80fd \u7528\u4e8e ROS 2 \u3002 1 . \u8bbe\u7f6e \u9879\u76ee \u76ee\u5f55 \u5e76 \u514b\u9686 ROS \u7f51\u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a 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 . \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / foxy / setup . bash 3 . \u5b89\u88c5 ROS \u4f9d\u8d56 \uff1a rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . \u4f7f\u7528 colcon \u6784\u5efa ROS \u6865 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \uff1a colcon build \u8fd0\u884c ROS \u6865 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 \u6d4b\u8bd5 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 2 \u7684 ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros2/#ros-2ros","text":"\u672c\u8282 \u662f \u5173\u4e8e \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u4ee5 \u4e0e ROS 2 \u4e00\u8d77 \u4f7f\u7528 \u7684 \u6307\u5357 \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 \u5de5\u4f5c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 \u9002\u7528 \u4e8e Windows \u7684 ROS \u4ecd \u5728 \u5b9e\u9a8c \u3002 \u5b83 \u53ea \u5728 Linux \u7cfb\u7edf \u4e0a \u8fdb\u884c \u8fc7 \u6d4b\u8bd5 \u3002","title":"ROS 2 \u7684 ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros2/#_1","text":"\u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u5b89\u88c5 ROS : ROS 2 Foxy \u2014 \u9488\u5bf9 Ubuntu 20.04 ( Focal ) - \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u662f \u7528 rviz \u5c06 ROS \u6570\u636e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 CARLA 0.9 . 11 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u9075\u5faa \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216\u8005 \u4e3a Linux \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e CARLA \u7248\u672c \u5339\u914d \u76f8\u5339\u914d \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"ros_installation_ros2/#ros","text":"\u6ce8\u610f Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \u8fd8 \u4e0d\u80fd \u7528\u4e8e ROS 2 \u3002 1 . \u8bbe\u7f6e \u9879\u76ee \u76ee\u5f55 \u5e76 \u514b\u9686 ROS \u7f51\u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a 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 . \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / foxy / setup . bash 3 . \u5b89\u88c5 ROS \u4f9d\u8d56 \uff1a rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . \u4f7f\u7528 colcon \u6784\u5efa ROS \u6865 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \uff1a colcon build","title":"ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros2/#ros_1","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":"\u8fd0\u884c ROS \u6865"},{"location":"ros_installation_ros2/#_2","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":"\u6d4b\u8bd5"},{"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 \u540d\u79f0 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u538b\u7ebf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u538b\u7ebf \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 \u8def\u5f84 \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 \u540d\u79f0 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u538b\u7ebf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u538b\u7ebf \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":"\u8def\u5f84 \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 \u538b\u7ebf \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 \u53d8\u6362 \uff08 TF \uff09 \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 \u8f6c\u6362 \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 \u8f6c\u6362 \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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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":"\u538b\u7ebf \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 \u8f6c\u6362 \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 \u8f6c\u6362 \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002","title":"\u53d8\u6362 \uff08 TF \uff09 \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 \u884c\u4eba \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53d1\u5e03 \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 \u8282\u62cd 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 \u8282\u62cd \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8282\u62cd \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 \u8282\u62cd \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 # \u5bf9\u4e8e ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # \u5bf9\u4e8e 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 \u9500\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 \u53d1\u5e03 \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 \u8282\u62cd 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 \u8282\u62cd \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u8282\u62cd \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 \u8282\u62cd \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 # \u5bf9\u4e8e ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # \u5bf9\u4e8e 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 \u9500\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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4ee3\u7406 \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 \u4eff\u771f \u771f\u5668 \u4eff\u771f\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 \u4ee3\u7406 \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":"simulator_keyboard_input/","text":"Carla \u6a21\u62df \u6a21\u62df\u5668 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u5728 \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u4e2d \u73a9\u6e38 \u6e38\u620f \u73a9\u6e38\u620f \u65f6 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6309\u952e \u7ed1\u5b9a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8f66\u8f86 \u63a7\u5236 \u4ec5 \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd0\u884c \u65f6 \u53ef\u7528 \u3002 \u952e \u52a8\u4f5c W \u6cb9\u95e8 S \u5239\u8f66 A D \u65b9\u5411 \u65b9\u5411\u76d8 Q \u5207\u6362 \u5012 \u6863 Space \u624b\u5239 P \u5207\u6362 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \\ leftarrow \\ rightarrow \\ uparrow \\ downarrow \u79fb\u52a8 \u76f8\u673a PgUp PgDn \u653e\u5927 \u548c \u7f29\u5c0f \u9f20\u6807 \u6eda\u8f6e \u653e\u5927 \u548c \u7f29\u5c0f Tab \u5207\u6362 \u673a\u8f7d \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 F11 \u5207\u6362 \u5168\u5c4f R \u5f00\u59cb \u8bb0\u5f55 \u6570\u636e G \u5207\u6362 \u5934\u663e C \u6539\u53d8 \u5929\u6c14 / \u5149\u7167 Enter \u8df3 F \u4f7f\u7528 \u529b F \u9000\u51fa","title":"Carla \u6a21\u62df\u5668 \u952e\u76d8\u8f93\u5165"},{"location":"simulator_keyboard_input/#carla","text":"\u5728 \u6a21\u62df \u6a21\u62df\u5668 \u7a97\u53e3 \u4e2d \u73a9\u6e38 \u6e38\u620f \u73a9\u6e38\u620f \u65f6 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6309\u952e \u7ed1\u5b9a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8f66\u8f86 \u63a7\u5236 \u4ec5 \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd0\u884c \u65f6 \u53ef\u7528 \u3002 \u952e \u52a8\u4f5c W \u6cb9\u95e8 S \u5239\u8f66 A D \u65b9\u5411 \u65b9\u5411\u76d8 Q \u5207\u6362 \u5012 \u6863 Space \u624b\u5239 P \u5207\u6362 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \\ leftarrow \\ rightarrow \\ uparrow \\ downarrow \u79fb\u52a8 \u76f8\u673a PgUp PgDn \u653e\u5927 \u548c \u7f29\u5c0f \u9f20\u6807 \u6eda\u8f6e \u653e\u5927 \u548c \u7f29\u5c0f Tab \u5207\u6362 \u673a\u8f7d \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 F11 \u5207\u6362 \u5168\u5c4f R \u5f00\u59cb \u8bb0\u5f55 \u6570\u636e G \u5207\u6362 \u5934\u663e C \u6539\u53d8 \u5929\u6c14 / \u5149\u7167 Enter \u8df3 F \u4f7f\u7528 \u529b F \u9000\u51fa","title":"Carla \u6a21\u62df\u5668 \u952e\u76d8\u8f93\u5165"},{"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 Carla \u67b6\u6784 \u7684 \u8bbe\u8ba1 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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":"Start introduction"},{"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 Carla \u67b6\u6784 \u7684 \u8bbe\u8ba1 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 # \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 \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 # \u7981\u7528 \u6e32\u67d3 . / config . py -- map Town05 # \u6539\u53d8 \u5730\u56fe \u3001 . / config . py -- weather ClearNoon # \u6539\u53d8 \u5929\u6c14 . / config . py -- help # \u68c0\u67e5 \u6240\u6709 \u53ef \u83b7\u5f97 \u7684 \u914d\u7f6e \u9009\u9879 \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":"Start quickstart"},{"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 # \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 \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 # \u7981\u7528 \u6e32\u67d3 . / config . py -- map Town05 # \u6539\u53d8 \u5730\u56fe \u3001 . / config . py -- weather ClearNoon # \u6539\u53d8 \u5929\u6c14 . / config . py -- help # \u68c0\u67e5 \u6240\u6709 \u53ef \u83b7\u5f97 \u7684 \u914d\u7f6e \u9009\u9879","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 \u4fee\u590d \u9875\u9762 \u5185 \u7684 \u8df3\u8f6c \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 UE5 \u4e2d \u5b9e\u73b0 \u8fdc\u7a0b \u591a\u7528 \u7528\u6237 \u591a\u7528\u6237 \u534f\u4f5c \u7f16\u8f91 \u3001 \u8868\u60c5 \u5efa\u6a21 Epic \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 Carla \u793e\u533a \u3001 \u6df1\u4fe1 \u79d1\u521b \u3001 \u4e2d\u6587 \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 carla \u793a\u4f8b 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 \u6e38\u620f \u5f00\u53d1 \uff1a \u591a \u73a9\u5bb6 \u3001 \u4e0a\u4e0b \u9009\u62e9 \u5e76 \u56de\u8f66 SUMMIT \uff1a \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u6df7\u5408 \u4ea4\u901a \u6761\u4ef6 \u4e0b \u7684 \u57ce\u5e02 \u9a7e\u9a76 \u6a21\u62df \u6a21\u62df\u5668 \u4e00\u53e5 \u8bdd \u751f\u6210 \u60f3\u8981 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u5173\u952e \u573a\u666f \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5de5\u5177 Carla \u8c03\u8bd5 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u94fe\u63a5 \u3002 \u5b66\u672f \u7814\u7a76 \u5b66\u672f\u7814\u7a76 \u611f\u77e5 \u8f66\u8f86 / \u884c\u4eba \uff1a \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u884c\u4e3a \u5efa\u6a21 \u3001 \u5bf9\u6297 \u8bad\u7ec3 \u3001 \u591a \u6a21\u6001 \u878d\u5408 \u3001 \u60ef\u89c6 \u878d\u5408 \u7b49 \u3002 \u884c\u4eba \uff1a \u8fc7 \u9a6c\u8def \u548c \u4e0d\u8fc7 \u9a6c\u8def \u5206\u7c7b \u3001 \u59ff\u6001 \u81ea \u7f16\u7801 \uff08 \u589e\u52a0 \u6240 \u63d0\u53d6 \u9aa8\u67b6 \u7684 \u8d28\u91cf \uff09 \u3001 \u59ff\u6001 \u4f30\u8ba1 \u3001 \u59ff\u6001 \u62ac\u5347 \uff1b \u8fd0\u52a8 \u5b9a\u5411 \u91cd\u5b9a\u5411 \u3001 \u98ce\u683c \u8fc1\u79fb \uff1b \u89c4\u5212 \u5efa\u56fe \u3001 \u5b9a\u4f4d \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002 \u51b3\u7b56 \u7684 \u4f26\u7406 \u548c \u516c\u5e73 \u3002 \u63a7\u5236 PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002 \u901a\u8fc7 carla . Walker . set _ bones ( ) \u5bf9 \u884c\u4eba \u9aa8\u9abc \u8fdb\u884c \u53d8\u6362 \u3002 \u573a\u666f \u4ee3\u7406 \u3001 \u667a\u80fd \u9a7e\u9a76 \u7b49 \u3002 \u63d0\u4f9b \u6570\u636e \u63d0\u4f9b\u6570\u636e \u5b6a\u751f \u5efa\u7b51 \u751f\u6210 \u7684 Python \u63a5\u53e3 \u3002 \u4ee3\u7406 \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u9884\u6d4b \u9a7e\u9a76 \u884c\u4e3a \u7684 \u795e\u7ecf \u6fc0\u6d3b \u7ed3\u6784 CloningDCB \uff1a \u57fa\u4e8e \u514b\u9686 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8ba4\u77e5 \u884c\u4e3a \u7684 \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6280\u672f \u62a5\u544a \u3002 \u9a7e\u9a76 \u3001 \u884c\u8d70 \u3001 \u7ad9\u7acb \u3001 \u8dd1\u6b65 \uff1b \u827a\u672f \u589e\u5f3a \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 \u4f53\u79ef \u96fe \u3001 \u96ea \u3001 \u810f \u7684 \u652f\u6301 \uff1b \u6e56 \u5de5\u5546 \u3001 \u91d1 \u91b4 \u9ad8\u901f \u573a\u666f \u5927 \u6587\u4ef6 \u652f\u6301 \uff1b \u6e56 \u5de5\u5546 \u573a\u666f \u5206\u652f https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u4e2d \u7535 \u8f6f\u4ef6 \u8f6f\u4ef6\u56ed \u65b0 \u5b89\u88c5 apkpure \uff0c \u518d \u5b89\u88c5 RealityScan \u884c\u4eba \u53c2\u8003 \u884c\u4eba \u6784\u5efa \u6d41\u7a0b \u3002 \u672a \u5b9a\u4f4d \u529f\u80fd \uff1a \u8dd1\u6b65 \uff1b \u672a \u5b9e\u73b0 \u529f\u80fd \uff1a \u4ea4\u8c08 \u3001 \u53eb \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \u3001 \u5750\u4e0b \u3002 \u865a\u5e7b \u5f15\u64ce \u5f15\u64ce \u4f18\u5316 \uff1a \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 \u5904\u7406 \u78b0\u649e \u3002 \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u8f66\u8f86 \u78b0\u649e \u58f0\u97f3 \u865a\u5e7b \u97f3\u9891 \u7684 \u58f0\u5b66 \u9879\u76ee \u3002 \u7528 C++ \u589e\u52a0 \u97f3\u89c6 \u89c6\u9891 \u97f3\u89c6\u9891 \u4e92\u52a8 \u3001 \u5229\u7528 \u84dd\u56fe \u5236\u4f5c \u7acb\u4f53 \u73af\u5883 \u58f0 \u3002","title":"\u5f85 \u505a"},{"location":"todo/#_1","text":"","title":"\u5f85 \u505a"},{"location":"todo/#_2","text":"\u4fee\u590d \u9875\u9762 \u5185 \u7684 \u8df3\u8f6c \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 UE5 \u4e2d \u5b9e\u73b0 \u8fdc\u7a0b \u591a\u7528 \u7528\u6237 \u591a\u7528\u6237 \u534f\u4f5c \u7f16\u8f91 \u3001 \u8868\u60c5 \u5efa\u6a21 Epic \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 Carla \u793e\u533a \u3001 \u6df1\u4fe1 \u79d1\u521b \u3001 \u4e2d\u6587 \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 carla \u793a\u4f8b 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 \u6e38\u620f \u5f00\u53d1 \uff1a \u591a \u73a9\u5bb6 \u3001 \u4e0a\u4e0b \u9009\u62e9 \u5e76 \u56de\u8f66 SUMMIT \uff1a \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u6df7\u5408 \u4ea4\u901a \u6761\u4ef6 \u4e0b \u7684 \u57ce\u5e02 \u9a7e\u9a76 \u6a21\u62df \u6a21\u62df\u5668 \u4e00\u53e5 \u8bdd \u751f\u6210 \u60f3\u8981 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u5173\u952e \u573a\u666f","title":"\u6280\u672f \u6587\u6863"},{"location":"todo/#_3","text":"Carla \u8c03\u8bd5 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u94fe\u63a5 \u3002","title":"\u7b2c\u4e09\u65b9 \u5de5\u5177"},{"location":"todo/#_4","text":"","title":"\u5b66\u672f\u7814\u7a76"},{"location":"todo/#_5","text":"\u8f66\u8f86 / \u884c\u4eba \uff1a \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u884c\u4e3a \u5efa\u6a21 \u3001 \u5bf9\u6297 \u8bad\u7ec3 \u3001 \u591a \u6a21\u6001 \u878d\u5408 \u3001 \u60ef\u89c6 \u878d\u5408 \u7b49 \u3002 \u884c\u4eba \uff1a \u8fc7 \u9a6c\u8def \u548c \u4e0d\u8fc7 \u9a6c\u8def \u5206\u7c7b \u3001 \u59ff\u6001 \u81ea \u7f16\u7801 \uff08 \u589e\u52a0 \u6240 \u63d0\u53d6 \u9aa8\u67b6 \u7684 \u8d28\u91cf \uff09 \u3001 \u59ff\u6001 \u4f30\u8ba1 \u3001 \u59ff\u6001 \u62ac\u5347 \uff1b \u8fd0\u52a8 \u5b9a\u5411 \u91cd\u5b9a\u5411 \u3001 \u98ce\u683c \u8fc1\u79fb \uff1b","title":"\u611f\u77e5"},{"location":"todo/#_6","text":"\u5efa\u56fe \u3001 \u5b9a\u4f4d \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002 \u51b3\u7b56 \u7684 \u4f26\u7406 \u548c \u516c\u5e73 \u3002","title":"\u89c4\u5212"},{"location":"todo/#_7","text":"PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002 \u901a\u8fc7 carla . Walker . set _ bones ( ) \u5bf9 \u884c\u4eba \u9aa8\u9abc \u8fdb\u884c \u53d8\u6362 \u3002","title":"\u63a7\u5236"},{"location":"todo/#_8","text":"\u4ee3\u7406 \u3001 \u667a\u80fd \u9a7e\u9a76 \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/#_9","text":"\u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u9884\u6d4b \u9a7e\u9a76 \u884c\u4e3a \u7684 \u795e\u7ecf \u6fc0\u6d3b \u7ed3\u6784 CloningDCB \uff1a \u57fa\u4e8e \u514b\u9686 \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u8ba4\u77e5 \u884c\u4e3a \u7684 \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6280\u672f \u62a5\u544a \u3002 \u9a7e\u9a76 \u3001 \u884c\u8d70 \u3001 \u7ad9\u7acb \u3001 \u8dd1\u6b65 \uff1b","title":"\u4ee3\u7406"},{"location":"todo/#_10","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 \u4f53\u79ef \u96fe \u3001 \u96ea \u3001 \u810f \u7684 \u652f\u6301 \uff1b \u6e56 \u5de5\u5546 \u3001 \u91d1 \u91b4 \u9ad8\u901f \u573a\u666f \u5927 \u6587\u4ef6 \u652f\u6301 \uff1b \u6e56 \u5de5\u5546 \u573a\u666f \u5206\u652f https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u4e2d \u7535 \u8f6f\u4ef6 \u8f6f\u4ef6\u56ed \u65b0 \u5b89\u88c5 apkpure \uff0c \u518d \u5b89\u88c5 RealityScan","title":"\u827a\u672f \u589e\u5f3a"},{"location":"todo/#_11","text":"\u53c2\u8003 \u884c\u4eba \u6784\u5efa \u6d41\u7a0b \u3002 \u672a \u5b9a\u4f4d \u529f\u80fd \uff1a \u8dd1\u6b65 \uff1b \u672a \u5b9e\u73b0 \u529f\u80fd \uff1a \u4ea4\u8c08 \u3001 \u53eb \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \u3001 \u5750\u4e0b \u3002","title":"\u884c\u4eba"},{"location":"todo/#_12","text":"\u5f15\u64ce \u4f18\u5316 \uff1a \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002 \u52a0\u8f7d \u8fdb\u5ea6 \uff1b","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"todo/#_13","text":"\u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce Chrono \u5904\u7406 \u78b0\u649e \u3002 \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u8f66\u8f86 \u78b0\u649e","title":"\u6709\u9650\u5143"},{"location":"todo/#_14","text":"\u865a\u5e7b \u97f3\u9891 \u7684 \u58f0\u5b66 \u9879\u76ee \u3002 \u7528 C++ \u589e\u52a0 \u97f3\u89c6 \u89c6\u9891 \u97f3\u89c6\u9891 \u4e92\u52a8 \u3001 \u5229\u7528 \u84dd\u56fe \u5236\u4f5c \u7acb\u4f53 \u73af\u5883 \u58f0 \u3002","title":"\u58f0\u97f3"},{"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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ee3\u7406 \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 \u4ee3\u7406 \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":"Ts traffic simulation overview"},{"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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u4ee3\u7406 \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 \u4ee3\u7406 \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":"tuto A add props"},{"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 N \u8f6e \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 : # \u7f51\u683c \u7684 \u539f\u70b9 \u3002 \u5c06 \u5176 \u653e\u7f6e \u5728 \u573a\u666f \u7684 0 \u70b9 - BikeBody : # \u6a21\u578b \u8eab\u4f53 \u7684 \u4e2d\u5fc3 \u3002 - Pedals : # \u5982\u679c \u8f66\u8f86 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5c06 \u811a\u8e0f \u8e0f\u677f \u811a\u8e0f\u677f \u7ed1 \u5728 \u8fd9\u5757 \u9aa8\u5934 \u4e0a \uff0c \u5c31 \u4f1a \u968f\u7740 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u800c \u65cb\u8f6c \u3002 - RightPedal : # \u5982\u679c \u8f66\u8f86 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5219 \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u811a\u90e8 \u4f4d\u7f6e \u5e76 \u4e0e \u811a\u8e0f \u8e0f\u677f \u811a\u8e0f\u677f \u4e00\u8d77 \u65cb\u8f6c \u3002 - LeftPedal : # ^ - RearWheel : # \u8f66\u8f86 \u540e\u8f6e - Handler : # \u4e0e \u8f66\u8f86 \u7684 \u524d\u8f6e \u4e00\u8d77 \u65cb\u8f6c \uff0c \u5c06 \u8f66\u8f86 \u64cd\u7eb5 \u64cd\u7eb5\u5668 \u56fa\u5b9a \u5728 \u5176 \u4e0a \u3002 - HandlerMidBone : # \u5b9a\u4f4d \u5728 \u524d\u8f6e \u9aa8\u67b6 \u4e0a \uff0c \u4ee5 \u786e\u5b9a \u64cd\u7eb5 \u64cd\u7eb5\u5668 \u4e0e \u8f66\u8f6e \u7684 \u65b9\u5411 - HandlerRight : # \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u624b \u7684 \u4f4d\u7f6e \uff0c \u65e0\u9700 \u5c06 \u5176 \u7ed1\u5b9a \u5230 \u4efb\u4f55 \u4e1c\u897f \u3002 - HandlerLeft : # ^ - Frontwheel : # \u8f66\u8f86 \u7684 \u524d\u8f6e \u3002 - RightHelperRotator : # \u8fd9 \u56db\u5757 \u989d\u5916 \u7684 \u9aa8\u5934 \u662f \u4e3a \u4e00\u4e2a \u8fc7\u65f6 \u7684 \u7cfb\u7edf \u63d0\u4f9b \u7684 \uff0c \u8be5 \u7cfb\u7edf \u901a\u8fc7 \u4f7f\u7528 \u4f20\u7edf \u7684 \u9690\u5f62 \u8f66\u8f6e \u4f7f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7a33\u5b9a - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u9acb\u9aa8 \u7684 \u4f4d\u7f6e \u3002 \u65e0\u9700 \u5c06 \u5176 \u7ed1 \u5728 \u4efb\u4f55 \u4e1c\u897f \u4e0a \uff0c \u53ea \u9700 \u5c0f\u5fc3 \u653e\u7f6e \u5373\u53ef \u3002 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":"tuto A add vehicle"},{"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 N \u8f6e \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 : # \u7f51\u683c \u7684 \u539f\u70b9 \u3002 \u5c06 \u5176 \u653e\u7f6e \u5728 \u573a\u666f \u7684 0 \u70b9 - BikeBody : # \u6a21\u578b \u8eab\u4f53 \u7684 \u4e2d\u5fc3 \u3002 - Pedals : # \u5982\u679c \u8f66\u8f86 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5c06 \u811a\u8e0f \u8e0f\u677f \u811a\u8e0f\u677f \u7ed1 \u5728 \u8fd9\u5757 \u9aa8\u5934 \u4e0a \uff0c \u5c31 \u4f1a \u968f\u7740 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u800c \u65cb\u8f6c \u3002 - RightPedal : # \u5982\u679c \u8f66\u8f86 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5219 \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u811a\u90e8 \u4f4d\u7f6e \u5e76 \u4e0e \u811a\u8e0f \u8e0f\u677f \u811a\u8e0f\u677f \u4e00\u8d77 \u65cb\u8f6c \u3002 - LeftPedal : # ^ - RearWheel : # \u8f66\u8f86 \u540e\u8f6e - Handler : # \u4e0e \u8f66\u8f86 \u7684 \u524d\u8f6e \u4e00\u8d77 \u65cb\u8f6c \uff0c \u5c06 \u8f66\u8f86 \u64cd\u7eb5 \u64cd\u7eb5\u5668 \u56fa\u5b9a \u5728 \u5176 \u4e0a \u3002 - HandlerMidBone : # \u5b9a\u4f4d \u5728 \u524d\u8f6e \u9aa8\u67b6 \u4e0a \uff0c \u4ee5 \u786e\u5b9a \u64cd\u7eb5 \u64cd\u7eb5\u5668 \u4e0e \u8f66\u8f6e \u7684 \u65b9\u5411 - HandlerRight : # \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u624b \u7684 \u4f4d\u7f6e \uff0c \u65e0\u9700 \u5c06 \u5176 \u7ed1\u5b9a \u5230 \u4efb\u4f55 \u4e1c\u897f \u3002 - HandlerLeft : # ^ - Frontwheel : # \u8f66\u8f86 \u7684 \u524d\u8f6e \u3002 - RightHelperRotator : # \u8fd9 \u56db\u5757 \u989d\u5916 \u7684 \u9aa8\u5934 \u662f \u4e3a \u4e00\u4e2a \u8fc7\u65f6 \u7684 \u7cfb\u7edf \u63d0\u4f9b \u7684 \uff0c \u8be5 \u7cfb\u7edf \u901a\u8fc7 \u4f7f\u7528 \u4f20\u7edf \u7684 \u9690\u5f62 \u8f66\u8f6e \u4f7f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7a33\u5b9a - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # \u8bbe\u7f6e \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u9acb\u9aa8 \u7684 \u4f4d\u7f6e \u3002 \u65e0\u9700 \u5c06 \u5176 \u7ed1 \u5728 \u4efb\u4f55 \u4e1c\u897f \u4e0a \uff0c \u53ea \u9700 \u5c0f\u5fc3 \u653e\u7f6e \u5373\u53ef \u3002 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":"tuto A create standalone"},{"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_bat/","text":"\u5904\u7406 \u6279\u5904\u7406 \u811a\u672c % ~ dp0 ~ \u662f \u6269\u5c55 \u7684 \u610f\u601d \uff0c \u53d8\u91cf \u6269\u5145 ( \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd ) \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u628a \u4e00\u4e2a \u76f8\u5bf9 \u8def\u5f84 \u76f8\u5bf9\u8def\u5f84 \u8f6c\u6362 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 % 0 \u4ee3\u6307 \u5904\u7406 \u6279\u5904\u7406 \u6587\u4ef6 \u81ea\u8eab \uff08 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \" D : \\ test \\ bat \\ test . bat \" \uff0c \u6ce8\u610f \u6709 \u5f15\u53f7 \u53cc\u5f15\u53f7 \uff09 % ~ d0 \u662f \u6307 \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76d8\u7b26 \uff0c \u5176\u4e2d d \u4ee3\u8868 drive \u3002 ( \u6269\u5145 \u5230 \u76d8\u7b26 D : ) % ~ p0 \u662f \u6307 \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76ee\u5f55 \uff0c \u5176\u4e2d p \u4ee3\u8868 path \u3002 ( \u6269\u5145 \u5230 \u8def\u5f84 \\ test \\ bat \\ \uff0c \u6ce8\u610f \u6700\u540e \u6709\u4e2a \\ \uff09 % ~ dp0 \u662f \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76d8\u7b26 \u52a0 \u8def\u5f84 \u3002 \uff08 \u6269\u5145 \u5230 \u76d8\u7b26 \u548c \u8def\u5f84 \uff1a D : \\ test \\ bat \\ \uff09","title":"tuto D bat"},{"location":"tuto_D_bat/#_1","text":"% ~ dp0 ~ \u662f \u6269\u5c55 \u7684 \u610f\u601d \uff0c \u53d8\u91cf \u6269\u5145 ( \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd ) \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u628a \u4e00\u4e2a \u76f8\u5bf9 \u8def\u5f84 \u76f8\u5bf9\u8def\u5f84 \u8f6c\u6362 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 % 0 \u4ee3\u6307 \u5904\u7406 \u6279\u5904\u7406 \u6587\u4ef6 \u81ea\u8eab \uff08 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \" D : \\ test \\ bat \\ test . bat \" \uff0c \u6ce8\u610f \u6709 \u5f15\u53f7 \u53cc\u5f15\u53f7 \uff09 % ~ d0 \u662f \u6307 \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76d8\u7b26 \uff0c \u5176\u4e2d d \u4ee3\u8868 drive \u3002 ( \u6269\u5145 \u5230 \u76d8\u7b26 D : ) % ~ p0 \u662f \u6307 \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76ee\u5f55 \uff0c \u5176\u4e2d p \u4ee3\u8868 path \u3002 ( \u6269\u5145 \u5230 \u8def\u5f84 \\ test \\ bat \\ \uff0c \u6ce8\u610f \u6700\u540e \u6709\u4e2a \\ \uff09 % ~ dp0 \u662f \u5904\u7406 \u6279\u5904\u7406 \u6240\u5728 \u7684 \u76d8\u7b26 \u52a0 \u8def\u5f84 \u3002 \uff08 \u6269\u5145 \u5230 \u76d8\u7b26 \u548c \u8def\u5f84 \uff1a D : \\ test \\ bat \\ \uff09","title":"\u6279\u5904\u7406 \u811a\u672c"},{"location":"tuto_D_cmake/","text":"CMake \u547d\u4ee4 \u4ecb\u7ecd \u53c2\u8003 \u6559\u7a0b \u3002 \u53c2\u6570 \u89e3\u91ca \u89e3\u91ca \u5728 Util / BuildTools / * \u76ee\u5f55 \u4e0b \u6240 \u4f7f\u7528 \u5230 \u7684 \u5404\u4e2a \u811a\u672c \uff1a \u53c2\u6570 \u542b\u4e49 - G % GENERATOR% % PLATFORM% \u6307\u5b9a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3001 \u5e73\u53f0 - DCMAKE _ BUILD _ TYPE = Client \u6307\u5b9a \u6784\u5efa \u7c7b\u578b - DCMAKE _ CXX _ FLAGS _ RELEASE = \" / MD / MP \" \u4e3a / MD / MP \u6784\u5efa \u8bbe\u7f6e C++ \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u4f18\u5316 \u7ea7\u522b - DCMAKE _ INSTALL _ PREFIX \u6307\u5b9a \u8fd9\u4e9b \u6587\u4ef6 \u5e94\u8be5 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u54ea\u4e2a \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 PythonAPI \u91cc \uff09 -- build . \u5bf9 \u751f\u6210 \u597d \u7684 \u9879\u76ee \u8fdb\u884c \u7f16\u8bd1 \u6784\u5efa \uff0c . \u6307 \u7684 \u662f \u751f\u6210 \u597d \u7684 build tree \u7684 \u8def\u5f84 -- config Release \u6784\u5efa \u540e\u4f1a \u6309 install \u89c4\u5219 \u5b89\u88c5 \u4e00\u4efd \uff0c \u540c\u65f6 \u5728 - DCMAKE _ INSTALL _ PREFIX \u6307\u5b9a \u7684 \u8def\u5f84 \u4e0b \u4e5f \u4f1a \u5b89\u88c5 \u4e00\u4efd \u3002 findstr / V \" Up - to - date : \" \u5bf9 \u6253\u5370 \u5370\u4e0d \u5305\u542b \u76f8\u7b26 \u9879\u76ee \u7684 \u884c \u3002","title":"tuto D cmake"},{"location":"tuto_D_cmake/#cmake","text":"\u53c2\u8003 \u6559\u7a0b \u3002","title":"CMake \u547d\u4ee4 \u4ecb\u7ecd"},{"location":"tuto_D_cmake/#_1","text":"\u89e3\u91ca \u5728 Util / BuildTools / * \u76ee\u5f55 \u4e0b \u6240 \u4f7f\u7528 \u5230 \u7684 \u5404\u4e2a \u811a\u672c \uff1a \u53c2\u6570 \u542b\u4e49 - G % GENERATOR% % PLATFORM% \u6307\u5b9a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3001 \u5e73\u53f0 - DCMAKE _ BUILD _ TYPE = Client \u6307\u5b9a \u6784\u5efa \u7c7b\u578b - DCMAKE _ CXX _ FLAGS _ RELEASE = \" / MD / MP \" \u4e3a / MD / MP \u6784\u5efa \u8bbe\u7f6e C++ \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u4f18\u5316 \u7ea7\u522b - DCMAKE _ INSTALL _ PREFIX \u6307\u5b9a \u8fd9\u4e9b \u6587\u4ef6 \u5e94\u8be5 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u54ea\u4e2a \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 PythonAPI \u91cc \uff09 -- build . \u5bf9 \u751f\u6210 \u597d \u7684 \u9879\u76ee \u8fdb\u884c \u7f16\u8bd1 \u6784\u5efa \uff0c . \u6307 \u7684 \u662f \u751f\u6210 \u597d \u7684 build tree \u7684 \u8def\u5f84 -- config Release \u6784\u5efa \u540e\u4f1a \u6309 install \u89c4\u5219 \u5b89\u88c5 \u4e00\u4efd \uff0c \u540c\u65f6 \u5728 - DCMAKE _ INSTALL _ PREFIX \u6307\u5b9a \u7684 \u8def\u5f84 \u4e0b \u4e5f \u4f1a \u5b89\u88c5 \u4e00\u4efd \u3002 findstr / V \" Up - to - date : \" \u5bf9 \u6253\u5370 \u5370\u4e0d \u5305\u542b \u76f8\u7b26 \u9879\u76ee \u7684 \u884c \u3002","title":"\u53c2\u6570 \u89e3\u91ca"},{"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 \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 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 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 \u53d1\u51fa \u8282\u62cd \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":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 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 \u53d1\u51fa \u8282\u62cd \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":"\u5b9a\u5236 \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 \u4f53 \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 \u4f53 \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 \u4f53 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 \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 \u4f53 \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 \u4f53 \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 \u4f53 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u4f53 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 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 \u4f53 \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 \u4f53 \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 \u4f53 \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 \u7684 \u78b0\u649e \u4f53"},{"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 \u4f53 \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 \u4f53 \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 \u4f53 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 \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 \u4f53 \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 \u4f53 \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 \u4f53 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u4f53 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 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 \u4f53 \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 \u4f53 \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 \u4f53 \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_linux_debug/","text":"Linux \u4e0a \u7684 \u8c03\u8bd5 Python \u7a0b\u5e8f \u8c03\u8bd5 \u7a0b\u5e8f\u8c03\u8bd5 VScode \u6309 Ctrl + Shift + P \uff0c \u8f93\u5165 Python : Select Interpreter \u5e76 \u9009\u62e9 \uff1b \u9009\u62e9 \u6216 \u521b\u5efa \u6240 \u9700 \u7684 Python \u89e3\u91ca \u91ca\u5668 \u89e3\u91ca\u5668 \uff1b \u5355\u51fb \u884c\u53f7 \u5de6\u4fa7 \u8bbe\u7f6e \u65ad\u70b9 \uff1b \u70b9\u51fb \u53f3\u4e0a \u4e0a\u89d2 \u53f3\u4e0a\u89d2 \u4e09\u89d2 \u7bad\u5934 \uff0c \u9009\u62e9 Python Debugger : Debug Python File \uff1b shell wget - O - O : ( output ) \u4ee5 \u6307\u5b9a \u7684 \u6587\u4ef6 \u6587\u4ef6\u540d \u4fdd\u5b58 cut - d \" \" - f 1 - d : \u6307\u5b9a \u5b57\u6bb5 \u7684 \u5206\u9694 \u5206\u9694\u7b26 \uff0c \u9ed8\u8ba4 \u7684 \u5b57 \u6bb5 \u5206\u9694 \u5206\u9694\u7b26 \u4e3a \u201c TAB \u201d \uff1b - f : \u663e\u793a \u6307\u5b9a \u5b57\u6bb5 \u7684 \u5185\u5bb9 \uff1b \u67e5\u770b \u5df2\u6709 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff1a shell script conda env list Git \u975e \u5546\u7528 \u73af\u5883 \u4e0b \u7684 Git \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u5de5\u5177 SmartGit \u3002","title":"tuto D linux debug"},{"location":"tuto_D_linux_debug/#linux","text":"","title":"Linux \u4e0a \u7684 \u8c03\u8bd5"},{"location":"tuto_D_linux_debug/#python","text":"","title":"Python \u7a0b\u5e8f\u8c03\u8bd5"},{"location":"tuto_D_linux_debug/#vscode","text":"\u6309 Ctrl + Shift + P \uff0c \u8f93\u5165 Python : Select Interpreter \u5e76 \u9009\u62e9 \uff1b \u9009\u62e9 \u6216 \u521b\u5efa \u6240 \u9700 \u7684 Python \u89e3\u91ca \u91ca\u5668 \u89e3\u91ca\u5668 \uff1b \u5355\u51fb \u884c\u53f7 \u5de6\u4fa7 \u8bbe\u7f6e \u65ad\u70b9 \uff1b \u70b9\u51fb \u53f3\u4e0a \u4e0a\u89d2 \u53f3\u4e0a\u89d2 \u4e09\u89d2 \u7bad\u5934 \uff0c \u9009\u62e9 Python Debugger : Debug Python File \uff1b","title":"VScode"},{"location":"tuto_D_linux_debug/#shell","text":"wget - O - O : ( output ) \u4ee5 \u6307\u5b9a \u7684 \u6587\u4ef6 \u6587\u4ef6\u540d \u4fdd\u5b58 cut - d \" \" - f 1 - d : \u6307\u5b9a \u5b57\u6bb5 \u7684 \u5206\u9694 \u5206\u9694\u7b26 \uff0c \u9ed8\u8ba4 \u7684 \u5b57 \u6bb5 \u5206\u9694 \u5206\u9694\u7b26 \u4e3a \u201c TAB \u201d \uff1b - f : \u663e\u793a \u6307\u5b9a \u5b57\u6bb5 \u7684 \u5185\u5bb9 \uff1b \u67e5\u770b \u5df2\u6709 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff1a shell script conda env list","title":"shell"},{"location":"tuto_D_linux_debug/#git","text":"\u975e \u5546\u7528 \u73af\u5883 \u4e0b \u7684 Git \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u5de5\u5177 SmartGit \u3002","title":"Git"},{"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":"\u5982\u4f55 \u53d1\u5e03"},{"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_python_api/","text":"\u89e3\u8bfb setup . py \u5916\u90e8 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u542b\u4e49 shlwapi . lib \u5305\u542b \u4e86 \u5927\u91cf \u7684 Windows \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5904\u7406 \u65b9\u6cd5 Advapi32 . lib \u5305\u542b \u7684 \u51fd\u6570 \u4e0e \u5bf9\u8c61 \u7684 \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6ce8\u518c \u6ce8\u518c\u8868 \u7684 \u64cd\u63a7 \u4ee5\u53ca \u4e8b\u4ef6 \u65e5\u5fd7 \u6709\u5173 ole32 . lib \u4e00\u822c \u662f \u9700\u8981 \u751f\u6210 \u4e00\u4e2a \u552f\u4e00 \u7684 uuid \u65f6 \u7528\u5230 shell32 . lib \u5305\u542b \u4e86 \u4e00\u4e9b \u4e0e Shel \u76f8\u5173 \u7684 \u51fd\u6570 \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5b9a\u4e49 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u53ef\u4ee5 \u7528\u4e8e \u521b\u5efa \u548c \u7ba1\u7406 windows \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3001 \u6587\u4ef6 \u3001 \u5feb\u6377 \u65b9\u5f0f \u5feb\u6377\u65b9\u5f0f \u7b49 \u5bf9\u8c61 \uff0c \u4ee5\u53ca \u5b9e\u73b0 \u4e00\u4e9b \u4e0e Shel \u76f8\u5173 \u7684 \u529f\u80fd \uff0c \u5982 \u62d6\u653e \u3001 \u526a\u8d34 \u8d34\u677f \u526a\u8d34\u677f \u64cd\u4f5c \u3001 \u6587\u4ef6 \u5173\u8054 \u7b49 \u3002 ole32 . lib \u4e00\u822c \u662f \u9700\u8981 \u751f\u6210 \u4e00\u4e2a \u552f\u4e00 \u7684 uuid \u65f6 \u7528\u5230 libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib python \u8c03\u7528 c++ \u7684 \u63a5\u53e3 libboost _ filesystem - vc142 - mt - x64 - 1 _ 80 . lib boost \u7684 \u6587\u4ef6 \u7cfb\u7edf \u6587\u4ef6\u7cfb\u7edf \u5e93 rpc . lib \u8fdc\u7a0b \u8fc7\u7a0b \u8c03\u7528 \u5e93 \uff0c \u63d0\u4f9b \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5b9e\u73b0 \u3002 carla _ client . lib LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u73b0 libpng . lib \u56fe\u7247 \u5904\u7406 \u5e93 zlib . lib \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u5e93 Recast . lib \u8981 \u529f\u80fd \u662f \u5c06 \u573a\u666f \u7f51\u683c \u6a21\u578b \u751f\u6210 \u7528\u4e8e \u5bfb\u8def \u7684 \u7f51\u683c \u6a21\u578b \uff08 Navigation Mesh \uff0c \u4fd7\u79f0 \u884c\u8d70 \u9762 \uff0c \u6807\u8bb0 \u54ea\u4e9b \u5730\u65b9 \u54ea\u4e9b\u5730\u65b9 \u53ef \u884c\u8d70 \u7684 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7f51\u683c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff09 \u3002 Detour . lib \u4e3b\u8981 \u529f\u80fd \u662f \u5229\u7528 \u4e0a \u4e00\u6b65 \u6240 \u751f\u6210 \u7684 Navigation Mesh \u8fdb\u884c \u5bfb\u8def \u3002 DetourCrowd . lib \u63d0\u4f9b \u4e86 \u7fa4\u4f53 \u5bfb\u8def \u884c\u4e3a \u7684 \u529f\u80fd \u3002 xerces - c _ 3 . lib XML \u6587\u6863 \u89e3\u6790 \u5f00\u6e90 \u9879\u76ee \u3002 sqlite3 . lib \u5d4c\u5165 \u5d4c\u5165\u5f0f \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u3002 proj . lib \u901a\u7528 \u5750\u6807 \u8f6c\u6362 \u5e93 \u3002 osm2odr . lib OpenStreetMap \u8f6c OpenDrive \u5e93 \u3002","title":"tuto D python api"},{"location":"tuto_D_python_api/#setuppy","text":"\u5916\u90e8 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u542b\u4e49 shlwapi . lib \u5305\u542b \u4e86 \u5927\u91cf \u7684 Windows \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5904\u7406 \u65b9\u6cd5 Advapi32 . lib \u5305\u542b \u7684 \u51fd\u6570 \u4e0e \u5bf9\u8c61 \u7684 \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6ce8\u518c \u6ce8\u518c\u8868 \u7684 \u64cd\u63a7 \u4ee5\u53ca \u4e8b\u4ef6 \u65e5\u5fd7 \u6709\u5173 ole32 . lib \u4e00\u822c \u662f \u9700\u8981 \u751f\u6210 \u4e00\u4e2a \u552f\u4e00 \u7684 uuid \u65f6 \u7528\u5230 shell32 . lib \u5305\u542b \u4e86 \u4e00\u4e9b \u4e0e Shel \u76f8\u5173 \u7684 \u51fd\u6570 \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5b9a\u4e49 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u53ef\u4ee5 \u7528\u4e8e \u521b\u5efa \u548c \u7ba1\u7406 windows \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3001 \u6587\u4ef6 \u3001 \u5feb\u6377 \u65b9\u5f0f \u5feb\u6377\u65b9\u5f0f \u7b49 \u5bf9\u8c61 \uff0c \u4ee5\u53ca \u5b9e\u73b0 \u4e00\u4e9b \u4e0e Shel \u76f8\u5173 \u7684 \u529f\u80fd \uff0c \u5982 \u62d6\u653e \u3001 \u526a\u8d34 \u8d34\u677f \u526a\u8d34\u677f \u64cd\u4f5c \u3001 \u6587\u4ef6 \u5173\u8054 \u7b49 \u3002 ole32 . lib \u4e00\u822c \u662f \u9700\u8981 \u751f\u6210 \u4e00\u4e2a \u552f\u4e00 \u7684 uuid \u65f6 \u7528\u5230 libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib python \u8c03\u7528 c++ \u7684 \u63a5\u53e3 libboost _ filesystem - vc142 - mt - x64 - 1 _ 80 . lib boost \u7684 \u6587\u4ef6 \u7cfb\u7edf \u6587\u4ef6\u7cfb\u7edf \u5e93 rpc . lib \u8fdc\u7a0b \u8fc7\u7a0b \u8c03\u7528 \u5e93 \uff0c \u63d0\u4f9b \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5b9e\u73b0 \u3002 carla _ client . lib LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u73b0 libpng . lib \u56fe\u7247 \u5904\u7406 \u5e93 zlib . lib \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u5e93 Recast . lib \u8981 \u529f\u80fd \u662f \u5c06 \u573a\u666f \u7f51\u683c \u6a21\u578b \u751f\u6210 \u7528\u4e8e \u5bfb\u8def \u7684 \u7f51\u683c \u6a21\u578b \uff08 Navigation Mesh \uff0c \u4fd7\u79f0 \u884c\u8d70 \u9762 \uff0c \u6807\u8bb0 \u54ea\u4e9b \u5730\u65b9 \u54ea\u4e9b\u5730\u65b9 \u53ef \u884c\u8d70 \u7684 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7f51\u683c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff09 \u3002 Detour . lib \u4e3b\u8981 \u529f\u80fd \u662f \u5229\u7528 \u4e0a \u4e00\u6b65 \u6240 \u751f\u6210 \u7684 Navigation Mesh \u8fdb\u884c \u5bfb\u8def \u3002 DetourCrowd . lib \u63d0\u4f9b \u4e86 \u7fa4\u4f53 \u5bfb\u8def \u884c\u4e3a \u7684 \u529f\u80fd \u3002 xerces - c _ 3 . lib XML \u6587\u6863 \u89e3\u6790 \u5f00\u6e90 \u9879\u76ee \u3002 sqlite3 . lib \u5d4c\u5165 \u5d4c\u5165\u5f0f \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u3002 proj . lib \u901a\u7528 \u5750\u6807 \u8f6c\u6362 \u5e93 \u3002 osm2odr . lib OpenStreetMap \u8f6c OpenDrive \u5e93 \u3002","title":"\u89e3\u8bfb setup . py"},{"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 \u8c03\u8bd5 LibCarla Python \u6269\u5c55 \u6a21\u5757 \u8c03\u8bd5 PythonAPI \u6784\u5efa \u8c03\u8bd5 \u7248\u672c C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u8bd5 \u5176\u4ed6 \u68c0\u67e5 \u6240 \u4f9d\u8d56 dll \u5e93 \u7684 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d VS2019 \u6253\u5f00 CarlaUE4 \u7684 Cmake \u5de5\u7a0b \u5bfc\u5165 \u5d29\u6e83 \u95ee\u9898 VS \u8c03\u8bd5 UE \u9879\u76ee \u95ee\u9898 \u6280\u5de7 \u5b66\u4e60 \u7a0b\u5e8f \u8c03\u7528 \u6d41\u7a0b \uff1a Python \u3001 libcarla . cp37 - win _ amd64 . pyd \u3001 LibCarla \u3001 CarlaUE4 \u3002 \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 \u5982\u679c \u62a5\u9519 \uff1a \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 \uff08 The global shader cache file ' D : / work / workspace / engine / Engine / GlobalshaderCache - PCD3D _ M5 . bin ' is missing . \uff09 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 \u5728 BuildLibCarla . bat \u4e2d \uff0c \u5c06 -- config \u53c2\u6570 \u4ece Release \u4fee\u6539 \u4e3a Debug \u3002 \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 \u6216\u8005 \u53f3\u952e carla _ client _ debug \u9879\u76ee \u8fdb\u884c \u751f\u6210 \u3002 \u6ce8\u610f \u53f3\u952e carla _ client _ debug \uff0c \u9009\u62e9 \u8c03\u8bd5 - > \u542f\u52a8 \u65b0 \u5b9e\u4f8b \u3002 \u4e14 \u9700\u8981 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u4e2d \u65b0\u5efa Python \u9879\u76ee \u7528\u4e8e \u6d4b\u8bd5 \u3002 \u53c2\u8003 vs \u8c03\u8bd5 C++ \u3002 \u8c03\u8bd5 carla _ client \u65f6 \uff0c vs \u62a5\u9519 \uff1a boost : : python : : error _ already _ set \uff0c \u5c1d\u8bd5 \u6355\u83b7 \u5177\u4f53 \u5f02\u5e38 \u3002 Python \u6269\u5c55 \u6a21\u5757 LibCarla \u7f16\u8bd1 \u540e \u751f\u6210 Python37 / Lib / site - packages / carla / libcarla . cp37 - win _ amd64 . pyd \u7ed9 Python \u8fdb\u884c \u8c03\u7528 \u3002 \u4e3a\u4e86 \u63d0\u9ad8 \u8fd0\u884c \u901f\u5ea6 \uff0c \u5c06 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e2d \u7684 __ init __. py \u548c command . py \u7f16\u8bd1 \u4e3a __ pycache __ \u76ee\u5f55 \u4e2d \u7684 byte code ( \u5b57\u8282 \u7801 ) \u3002 \u8c03\u8bd5 PythonAPI 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 \u5217\u51fa \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \uff1a python setup . py -- help - commands \u6784\u5efa \u547d\u4ee4 \uff1a python setup . py build \u6784\u5efa \u8c03\u8bd5 \u7248\u672c \u53f3\u952e CARLA \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u6dfb\u52a0 - > \u65b0\u5efa \u9879\u76ee - > Python \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff1b \u5c06 manual _ control . py \u6587\u4ef6 \u5185\u5bb9 \u590d\u5236 \u590d\u5236\u5230 \u65b0\u5efa \u5de5\u7a0b \u7684 PythonApplication . py \u6587\u4ef6 \u4e2d \uff1b \u5728 . py \u6587\u4ef6 \u7684 \u5f00\u59cb \u5904 \u589e\u52a0 input ( ) \u4ee3\u7801 \uff1b \u53f3\u952e . py \u6587\u4ef6 \uff0c \u70b9\u51fb \u5f00\u59cb \u6267\u884c \uff08 \u8c03\u8bd5 \uff09 \uff0c \u4f1a\u5f39 \u51fa \u547d\u4ee4 \u547d\u4ee4\u884c \u754c\u9762 \uff1b \u53f3\u952e carla _ client _ debug \u9879\u76ee - > \u8c03\u8bd5 - > \u542f\u52a8 \u65b0 \u5b9e\u4f8b \uff1b \u5728 \u7b2c 4 \u6b65\u5f39 \u51fa \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u754c\u9762 \u4e2d \u6572 \u56de\u8f66 \uff1b \u53c2\u8003 \u94fe\u63a5 \uff0c \u6548\u679c \u672a\u77e5 \u3002 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u8bd5 \u9519\u8bef LNK2038 \u68c0\u6d4b \u5230 \u201c _ ITERATOR _ DEBUG _ LEVEL \u201d \u7684 \u4e0d \u5339\u914d \u9879 : \u503c \u201c 0 \u201d \u4e0d \u5339\u914d \u503c \u201c 2 \u201d \u9519\u8bef LNK2038 \u68c0\u6d4b \u5230 \u201c RuntimeLibrary \u201d \u7684 \u4e0d \u5339\u914d \u9879 : \u503c \u201c MD _ DynamicRelease \u201d \u4e0d \u5339\u914d \u503c \u201c MDd _ DynamicDebug \u201d \u5f53\u524d \u5de5\u7a0b \u662f Debug \u7248\u672c \uff08 0 \uff09 \uff0c \u800c \u5f15\u7528 \u7684 \u5e93 \u6587\u4ef6 \u65f6 Release \u7248\u672c \uff08 2 \uff09 \u3002 \u9700\u8981 \u5c06 \u5176\u4ed6 \u7684 . lib \u6587\u4ef6 \u7f16\u8bd1 \u4e3a debug \u6a21\u5f0f \uff1a 1 . \u5207\u6362 \u5230 \u76ee\u5f55 Util \\ InstallersWin \uff0c \u5c06 install _ boost . bat \u5185 \u7684 b2 \u8fd0\u884c \u53c2\u6570 \u6539\u4e3a variant = debug \uff0c \uff08 \u6839\u636e Setup . bat \uff09 \u8fd0\u884c install _ boost . bat \uff1a install _ boost . bat -- build - dir D : \\ work \\ buffer -- toolset msvc - 14.2 -- version 1.80 . 0 - j 4 \u4f1a \u81ea\u52a8 \u5c06 boost \u7684 \u5e93 \u548c \u6587\u4ef6 \u5934\u6587\u4ef6 \u5b89\u88c5 \u5230 \u76ee\u5f55 D : \\ work \\ buffer \\ boost - 1.80 . 0 - install \u91cc\u9762 \u3002 \u5c06 install _ recast . bat \u4e2d \u7684 Relase \u6539\u4e3a Debug \u3002 \u5c06 - DCMAKE _ CXX _ FLAGS _ RELASE = \" / MD / MP \" \u6539\u4e3a \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u8c03\u8bd5 DLL - DCMAKE _ CXX _ FLAGS _ DEBUG = \" / MDd / MP \" \uff0c \u8fd0\u884c install _ recast . bat \u3002 install _ recast . bat -- build - dir D : \\ work \\ buffer -- generator \" Visual Studio 16 2019 \" \u5c06 install _ rpclib . bat \u4e2d \u7684 Relase \u6539\u4e3a Debug \uff0c \u8fd0\u884c install _ rpclib . bat \u3002 \u5c06 - DCMAKE _ CXX _ FLAGS _ RELASE = \" / MD / MP \" \u6539\u4e3a \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u8c03\u8bd5 DLL - DCMAKE _ CXX _ FLAGS _ DEBUG = \" / MDd / MP \" \u3002 install _ rpclib . bat -- build - dir D : \\ work \\ buffer -- generator \" Visual Studio 16 2019 \" 2 . \u5c06 \u7b2c 1 \u6b65 \u751f\u6210 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 \u914d\u7f6e \u5230 Examples \\ CppClient \\ CMakeLists . txt \u4e2d \uff0c \u5bf9\u5e94 \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c \u5e93 \u6587\u4ef6 \u90fd \u6539\u4e3a Debug \u7248\u672c \uff1b 3 . \u5728 main . cpp \u4e2d \u589e\u52a0 \u65ad\u70b9 \uff0c \u5e76 \u5f00\u59cb \u8c03\u8bd5 \uff1b auto world = client . LoadWorld ( \" town _ name \" ) ; \u6539\u4e3a \uff1a auto world = client . LoadWorld ( \" Town10HD _ Opt \" ) ; 4 . \u7a0b\u5e8f \u5728 \u65ad\u70b9 \u505c\u6b62 \u540e \u6309 F10 \u8fd0\u884c \u4e0b \u4e00\u6b65 \uff0c \u6309 F11 \u8fdb\u5165 LibCarla \u4e2d \u7684 \u51fd\u6570 \u5b9e\u73b0 \u3002 \u5176\u4ed6 \u68c0\u67e5 \u6240 \u4f9d\u8d56 dll \u5e93 \u7684 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d \u4e0b \u65ad\u70b9 \uff0c F5 \u8c03\u8bd5 \u3002 \u7136\u540e \u201c \u8c03\u8bd5 - \u7a97\u53e3 - \u6a21\u5757 \u201d \u6253\u5f00 \u6a21\u5757 \u7a97\u53e3 \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 \u6d4b\u8bd5 \u94fe\u63a5 \uff1a \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.8553 , 28.1931 , 112.9396 , 28.2504 \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 \u5728 VS \u4e2d \u70b9\u51fb \u8c03\u8bd5 \u6216 \u8fd0\u884c \u65f6\u62a5 \u9519 \uff1a \u9519\u8bef 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 \u548c \u9519\u8bef C1012 \u62ec\u53f7 \u4e0d \u5339\u914d : \u7f3a\u5c11 \u201c ) \u201d \u89e3\u51b3 \uff1a \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 make launch ARGS = ' -- chrono ' \u8fdb\u884c \u91cd\u65b0 \u7f16\u8bd1 \u540e \uff0c \u7136\u540e \u518d\u7528 VS \u542f\u52a8 \u8c03\u8bd5 \u3002 \u6267\u884c \u201c make launch \u201d \u65f6 \u51fa\u9519 \uff0c ' Renderer / Public / GBufferView . h ' \u8868\u73b0 \u4e3a \u6253\u5f00 CarlaUE4 . sln \u540e \u6ca1\u6709 UnrealBuildTool \u9009\u9879 \u3002 \u56e0\u4e3a \u672a \u5728 STOCK UNREAL ENGINE \u4e2d \u627e\u5230 \u5b83 \u3002 \u5b83 \u662f \u6dfb\u52a0 \u5230 CARLA \u5206\u652f \u4e2d \u7684 \u5185\u5bb9 \u3002 \u5982\u679c \u60a8 \u5728 \u4e24\u4e2a \u7248\u672c \u7684 Unreal \u548c Carla \u4e4b\u95f4 \u6267\u884c git diff \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ea\u6709 \u5c11\u91cf \u66f4\u6539 \uff0c \u5e76\u4e14 \u6dfb\u52a0 \u4e86 GBuffer \u89c6\u56fe \u3002 \u89e3\u51b3 \uff1a \u53f3\u952e \u6587\u4ef6 CarlaUE4 . uproject \uff0c \u9009\u62e9 Switch Unreal Engine version \uff0c \u5e76 \u9009\u62e9 \u9700\u8981 \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u7248\u672c \uff08 \u5982\u679c \u6ca1\u6709 \u751f\u6210 \u65b0 \u7684 CarlaUE4 . sln \uff0c \u5219 \u9700\u8981 \u5148 \u5220\u9664 \u518d \u91cd\u65b0 \u751f\u6210 CarlaUE4 . sln \uff09 \u3002 \u8fd8\u6709 \u53ef\u80fd \u62a5\u9519 \uff1a \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 \u9700\u8981 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d\u5148 \u8fd0\u884c make launch \u6216\u8005 make launch ARGS = \" -- chrono \" \u7136\u540e \u518d \u5728 vs \u4e2d \u8fd0\u884c \u3002 \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 \u68c0\u67e5 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d \u542f\u52a8 \u8c03\u5f0f \u5e76 \u5728 \u65ad\u70b9 \u505c\u4e0b \uff0c \u7136\u540e \u201c \u8c03\u8bd5 - \u7a97\u53e3 - \u6a21\u5757 \u201d \u6253\u5f00 \u6a21\u5757 \u7a97\u53e3 \u3002 \u627e\u5230 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 dll \u7684 \u540d\u5b57 \uff0c \u770b \u201c \u7b26\u53f7 \u6587\u4ef6 \u201d \u4e00\u680f \u662f \u7a7a \u7684 \u3002 \u8bf4\u660e \u8fd9\u4e2a dll \u7684 \u7b26\u53f7 \u6587\u4ef6 \u6ca1\u6709 \u52a0\u8f7d \u3002 \u628a . pdb \u548c . dll \u653e\u5728 \u4e00\u8d77 \u3002 \u518d\u6b21 \u8c03\u8bd5 \u3002 \u53ef\u4ee5 \u770b\u5230 \u7b26\u53f7 \u6587\u4ef6 \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u3002 \u6539\u53d8 ubuntu \u7ec8\u7aef \u663e\u793a \u8bed\u8a00 \uff08 \u684c\u9762 \u7cfb\u7edf \u4e2d\u6587 \uff0c \u7ec8\u7aef \u63d0\u793a \u82f1\u6587 \uff09 vim ~ / . bashrc export LANGUAGE = en _ US export LANG = en _ US . UTF - 8 source ~ / . bashrc \u65e5\u5fd7 \u8bb0\u5f55 UE _ LOG \u51fd\u6570 \u8bb0\u5f55 \u7684 \u65e5\u5fd7 \u4f4d\u4e8e carla \\ Unreal \\ CarlaUE4 \\ Saved \\ Logs \\ CarlaUE4 . log \u6587\u4ef6 \u4e2d \u3002 \u5de5\u5177 VScode \u8c03\u8bd5 shell bash \u811a\u672c \u5728 VScode \u4e2d \u5b89\u88c5 Bash Debug \uff0c \u5b66\u4e60 bat \u811a\u672c LibCarla \u8bf4\u660e CarlaUE4 \u8bf4\u660e","title":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \u7684 \u8c03\u8bd5"},{"location":"tuto_D_windows_debug/#windows-carla","text":"\u865a\u5e7b \u5f15\u64ce Carla \u63d2\u4ef6 \u7684 \u8c03\u8bd5 \u8c03\u8bd5 LibCarla Python \u6269\u5c55 \u6a21\u5757 \u8c03\u8bd5 PythonAPI \u6784\u5efa \u8c03\u8bd5 \u7248\u672c C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u8bd5 \u5176\u4ed6 \u68c0\u67e5 \u6240 \u4f9d\u8d56 dll \u5e93 \u7684 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d VS2019 \u6253\u5f00 CarlaUE4 \u7684 Cmake \u5de5\u7a0b \u5bfc\u5165 \u5d29\u6e83 \u95ee\u9898 VS \u8c03\u8bd5 UE \u9879\u76ee \u95ee\u9898 \u6280\u5de7 \u5b66\u4e60 \u7a0b\u5e8f \u8c03\u7528 \u6d41\u7a0b \uff1a Python \u3001 libcarla . cp37 - win _ amd64 . pyd \u3001 LibCarla \u3001 CarlaUE4 \u3002","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 \u5982\u679c \u62a5\u9519 \uff1a \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 \uff08 The global shader cache file ' D : / work / workspace / engine / Engine / GlobalshaderCache - PCD3D _ M5 . bin ' is missing . \uff09 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 \u5728 BuildLibCarla . bat \u4e2d \uff0c \u5c06 -- config \u53c2\u6570 \u4ece Release \u4fee\u6539 \u4e3a Debug \u3002 \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 \u6216\u8005 \u53f3\u952e carla _ client _ debug \u9879\u76ee \u8fdb\u884c \u751f\u6210 \u3002 \u6ce8\u610f \u53f3\u952e carla _ client _ debug \uff0c \u9009\u62e9 \u8c03\u8bd5 - > \u542f\u52a8 \u65b0 \u5b9e\u4f8b \u3002 \u4e14 \u9700\u8981 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u4e2d \u65b0\u5efa Python \u9879\u76ee \u7528\u4e8e \u6d4b\u8bd5 \u3002 \u53c2\u8003 vs \u8c03\u8bd5 C++ \u3002 \u8c03\u8bd5 carla _ client \u65f6 \uff0c vs \u62a5\u9519 \uff1a boost : : python : : error _ already _ set \uff0c \u5c1d\u8bd5 \u6355\u83b7 \u5177\u4f53 \u5f02\u5e38 \u3002","title":"\u8c03\u8bd5 LibCarla "},{"location":"tuto_D_windows_debug/#python","text":"LibCarla \u7f16\u8bd1 \u540e \u751f\u6210 Python37 / Lib / site - packages / carla / libcarla . cp37 - win _ amd64 . pyd \u7ed9 Python \u8fdb\u884c \u8c03\u7528 \u3002 \u4e3a\u4e86 \u63d0\u9ad8 \u8fd0\u884c \u901f\u5ea6 \uff0c \u5c06 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e2d \u7684 __ init __. py \u548c command . py \u7f16\u8bd1 \u4e3a __ pycache __ \u76ee\u5f55 \u4e2d \u7684 byte code ( \u5b57\u8282 \u7801 ) \u3002","title":"Python \u6269\u5c55 \u6a21\u5757 "},{"location":"tuto_D_windows_debug/#pythonapi","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 \u5217\u51fa \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \uff1a python setup . py -- help - commands \u6784\u5efa \u547d\u4ee4 \uff1a python setup . py build","title":"\u8c03\u8bd5 PythonAPI "},{"location":"tuto_D_windows_debug/#_1","text":"\u53f3\u952e CARLA \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u6dfb\u52a0 - > \u65b0\u5efa \u9879\u76ee - > Python \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff1b \u5c06 manual _ control . py \u6587\u4ef6 \u5185\u5bb9 \u590d\u5236 \u590d\u5236\u5230 \u65b0\u5efa \u5de5\u7a0b \u7684 PythonApplication . py \u6587\u4ef6 \u4e2d \uff1b \u5728 . py \u6587\u4ef6 \u7684 \u5f00\u59cb \u5904 \u589e\u52a0 input ( ) \u4ee3\u7801 \uff1b \u53f3\u952e . py \u6587\u4ef6 \uff0c \u70b9\u51fb \u5f00\u59cb \u6267\u884c \uff08 \u8c03\u8bd5 \uff09 \uff0c \u4f1a\u5f39 \u51fa \u547d\u4ee4 \u547d\u4ee4\u884c \u754c\u9762 \uff1b \u53f3\u952e carla _ client _ debug \u9879\u76ee - > \u8c03\u8bd5 - > \u542f\u52a8 \u65b0 \u5b9e\u4f8b \uff1b \u5728 \u7b2c 4 \u6b65\u5f39 \u51fa \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u754c\u9762 \u4e2d \u6572 \u56de\u8f66 \uff1b \u53c2\u8003 \u94fe\u63a5 \uff0c \u6548\u679c \u672a\u77e5 \u3002","title":"\u6784\u5efa \u8c03\u8bd5 \u7248\u672c "},{"location":"tuto_D_windows_debug/#c","text":"\u9519\u8bef LNK2038 \u68c0\u6d4b \u5230 \u201c _ ITERATOR _ DEBUG _ LEVEL \u201d \u7684 \u4e0d \u5339\u914d \u9879 : \u503c \u201c 0 \u201d \u4e0d \u5339\u914d \u503c \u201c 2 \u201d \u9519\u8bef LNK2038 \u68c0\u6d4b \u5230 \u201c RuntimeLibrary \u201d \u7684 \u4e0d \u5339\u914d \u9879 : \u503c \u201c MD _ DynamicRelease \u201d \u4e0d \u5339\u914d \u503c \u201c MDd _ DynamicDebug \u201d \u5f53\u524d \u5de5\u7a0b \u662f Debug \u7248\u672c \uff08 0 \uff09 \uff0c \u800c \u5f15\u7528 \u7684 \u5e93 \u6587\u4ef6 \u65f6 Release \u7248\u672c \uff08 2 \uff09 \u3002 \u9700\u8981 \u5c06 \u5176\u4ed6 \u7684 . lib \u6587\u4ef6 \u7f16\u8bd1 \u4e3a debug \u6a21\u5f0f \uff1a 1 . \u5207\u6362 \u5230 \u76ee\u5f55 Util \\ InstallersWin \uff0c \u5c06 install _ boost . bat \u5185 \u7684 b2 \u8fd0\u884c \u53c2\u6570 \u6539\u4e3a variant = debug \uff0c \uff08 \u6839\u636e Setup . bat \uff09 \u8fd0\u884c install _ boost . bat \uff1a install _ boost . bat -- build - dir D : \\ work \\ buffer -- toolset msvc - 14.2 -- version 1.80 . 0 - j 4 \u4f1a \u81ea\u52a8 \u5c06 boost \u7684 \u5e93 \u548c \u6587\u4ef6 \u5934\u6587\u4ef6 \u5b89\u88c5 \u5230 \u76ee\u5f55 D : \\ work \\ buffer \\ boost - 1.80 . 0 - install \u91cc\u9762 \u3002 \u5c06 install _ recast . bat \u4e2d \u7684 Relase \u6539\u4e3a Debug \u3002 \u5c06 - DCMAKE _ CXX _ FLAGS _ RELASE = \" / MD / MP \" \u6539\u4e3a \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u8c03\u8bd5 DLL - DCMAKE _ CXX _ FLAGS _ DEBUG = \" / MDd / MP \" \uff0c \u8fd0\u884c install _ recast . bat \u3002 install _ recast . bat -- build - dir D : \\ work \\ buffer -- generator \" Visual Studio 16 2019 \" \u5c06 install _ rpclib . bat \u4e2d \u7684 Relase \u6539\u4e3a Debug \uff0c \u8fd0\u884c install _ rpclib . bat \u3002 \u5c06 - DCMAKE _ CXX _ FLAGS _ RELASE = \" / MD / MP \" \u6539\u4e3a \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u8c03\u8bd5 DLL - DCMAKE _ CXX _ FLAGS _ DEBUG = \" / MDd / MP \" \u3002 install _ rpclib . bat -- build - dir D : \\ work \\ buffer -- generator \" Visual Studio 16 2019 \" 2 . \u5c06 \u7b2c 1 \u6b65 \u751f\u6210 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 \u914d\u7f6e \u5230 Examples \\ CppClient \\ CMakeLists . txt \u4e2d \uff0c \u5bf9\u5e94 \u7684 \u6587\u4ef6 \u5934\u6587\u4ef6 \u548c \u5e93 \u6587\u4ef6 \u90fd \u6539\u4e3a Debug \u7248\u672c \uff1b 3 . \u5728 main . cpp \u4e2d \u589e\u52a0 \u65ad\u70b9 \uff0c \u5e76 \u5f00\u59cb \u8c03\u8bd5 \uff1b auto world = client . LoadWorld ( \" town _ name \" ) ; \u6539\u4e3a \uff1a auto world = client . LoadWorld ( \" Town10HD _ Opt \" ) ; 4 . \u7a0b\u5e8f \u5728 \u65ad\u70b9 \u505c\u6b62 \u540e \u6309 F10 \u8fd0\u884c \u4e0b \u4e00\u6b65 \uff0c \u6309 F11 \u8fdb\u5165 LibCarla \u4e2d \u7684 \u51fd\u6570 \u5b9e\u73b0 \u3002","title":"C++ \u5ba2\u6237\u7aef \u8c03\u8bd5 "},{"location":"tuto_D_windows_debug/#_2","text":"","title":"\u5176\u4ed6 "},{"location":"tuto_D_windows_debug/#dll","text":"\u4e0b \u65ad\u70b9 \uff0c F5 \u8c03\u8bd5 \u3002 \u7136\u540e \u201c \u8c03\u8bd5 - \u7a97\u53e3 - \u6a21\u5757 \u201d \u6253\u5f00 \u6a21\u5757 \u7a97\u53e3 \u3002","title":"\u68c0\u67e5 \u6240 \u4f9d\u8d56 dll \u5e93 \u7684 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d "},{"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/#_3","text":"\u4f8b\u5982 \uff0c \u5bfc\u5165 \u6d4b\u8bd5 \u94fe\u63a5 \uff1a \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.8553 , 28.1931 , 112.9396 , 28.2504 \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/#_4","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 \u5728 VS \u4e2d \u70b9\u51fb \u8c03\u8bd5 \u6216 \u8fd0\u884c \u65f6\u62a5 \u9519 \uff1a \u9519\u8bef 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 \u548c \u9519\u8bef C1012 \u62ec\u53f7 \u4e0d \u5339\u914d : \u7f3a\u5c11 \u201c ) \u201d \u89e3\u51b3 \uff1a \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 make launch ARGS = ' -- chrono ' \u8fdb\u884c \u91cd\u65b0 \u7f16\u8bd1 \u540e \uff0c \u7136\u540e \u518d\u7528 VS \u542f\u52a8 \u8c03\u8bd5 \u3002 \u6267\u884c \u201c make launch \u201d \u65f6 \u51fa\u9519 \uff0c ' Renderer / Public / GBufferView . h ' \u8868\u73b0 \u4e3a \u6253\u5f00 CarlaUE4 . sln \u540e \u6ca1\u6709 UnrealBuildTool \u9009\u9879 \u3002 \u56e0\u4e3a \u672a \u5728 STOCK UNREAL ENGINE \u4e2d \u627e\u5230 \u5b83 \u3002 \u5b83 \u662f \u6dfb\u52a0 \u5230 CARLA \u5206\u652f \u4e2d \u7684 \u5185\u5bb9 \u3002 \u5982\u679c \u60a8 \u5728 \u4e24\u4e2a \u7248\u672c \u7684 Unreal \u548c Carla \u4e4b\u95f4 \u6267\u884c git diff \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ea\u6709 \u5c11\u91cf \u66f4\u6539 \uff0c \u5e76\u4e14 \u6dfb\u52a0 \u4e86 GBuffer \u89c6\u56fe \u3002 \u89e3\u51b3 \uff1a \u53f3\u952e \u6587\u4ef6 CarlaUE4 . uproject \uff0c \u9009\u62e9 Switch Unreal Engine version \uff0c \u5e76 \u9009\u62e9 \u9700\u8981 \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u7248\u672c \uff08 \u5982\u679c \u6ca1\u6709 \u751f\u6210 \u65b0 \u7684 CarlaUE4 . sln \uff0c \u5219 \u9700\u8981 \u5148 \u5220\u9664 \u518d \u91cd\u65b0 \u751f\u6210 CarlaUE4 . sln \uff09 \u3002 \u8fd8\u6709 \u53ef\u80fd \u62a5\u9519 \uff1a \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 \u9700\u8981 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d\u5148 \u8fd0\u884c make launch \u6216\u8005 make launch ARGS = \" -- chrono \" \u7136\u540e \u518d \u5728 vs \u4e2d \u8fd0\u884c \u3002","title":"\u95ee\u9898 "},{"location":"tuto_D_windows_debug/#_5","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/#_6","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/#_7","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 \u68c0\u67e5 \u7b26\u53f7 \u662f\u5426 \u52a0\u8f7d \u542f\u52a8 \u8c03\u5f0f \u5e76 \u5728 \u65ad\u70b9 \u505c\u4e0b \uff0c \u7136\u540e \u201c \u8c03\u8bd5 - \u7a97\u53e3 - \u6a21\u5757 \u201d \u6253\u5f00 \u6a21\u5757 \u7a97\u53e3 \u3002 \u627e\u5230 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 dll \u7684 \u540d\u5b57 \uff0c \u770b \u201c \u7b26\u53f7 \u6587\u4ef6 \u201d \u4e00\u680f \u662f \u7a7a \u7684 \u3002 \u8bf4\u660e \u8fd9\u4e2a dll \u7684 \u7b26\u53f7 \u6587\u4ef6 \u6ca1\u6709 \u52a0\u8f7d \u3002 \u628a . pdb \u548c . dll \u653e\u5728 \u4e00\u8d77 \u3002 \u518d\u6b21 \u8c03\u8bd5 \u3002 \u53ef\u4ee5 \u770b\u5230 \u7b26\u53f7 \u6587\u4ef6 \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u3002 \u6539\u53d8 ubuntu \u7ec8\u7aef \u663e\u793a \u8bed\u8a00 \uff08 \u684c\u9762 \u7cfb\u7edf \u4e2d\u6587 \uff0c \u7ec8\u7aef \u63d0\u793a \u82f1\u6587 \uff09 vim ~ / . bashrc export LANGUAGE = en _ US export LANG = en _ US . UTF - 8 source ~ / . bashrc \u65e5\u5fd7 \u8bb0\u5f55 UE _ LOG \u51fd\u6570 \u8bb0\u5f55 \u7684 \u65e5\u5fd7 \u4f4d\u4e8e carla \\ Unreal \\ CarlaUE4 \\ Saved \\ Logs \\ CarlaUE4 . log \u6587\u4ef6 \u4e2d \u3002","title":"\u6280\u5de7 "},{"location":"tuto_D_windows_debug/#_8","text":"VScode \u8c03\u8bd5 shell bash \u811a\u672c \u5728 VScode \u4e2d \u5b89\u88c5 Bash Debug \uff0c","title":"\u5de5\u5177"},{"location":"tuto_D_windows_debug/#_9","text":"bat \u811a\u672c LibCarla \u8bf4\u660e CarlaUE4 \u8bf4\u660e","title":"\u5b66\u4e60 "},{"location":"tuto_E_gallery/","text":"\u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b 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 \u8def\u5f84 \u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"tuto E gallery"},{"location":"tuto_E_gallery/#_1","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b","title":"\u57fa\u672c \u793a\u4f8b"},{"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 \u8def\u5f84 \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 \u3002 \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 \u3002 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u9a71\u52a8 \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 \u670d\u52a1 \u670d\u52a1\u7aef \uff1a \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u3002 \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":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u7684 \u529b\u53cd\u9988"},{"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 \u3002 \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 \u3002 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u9a71\u52a8 \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 \u670d\u52a1 \u670d\u52a1\u7aef \uff1a \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u3002 \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 ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u53d6 \u4e8b\u4ef6 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 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":"\u5982\u4f55 \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 ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u53d6 \u4e8b\u4ef6 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 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 ( ) # \u751f\u6210 \u8f66\u8f86 vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # \u751f\u6210 \u76f8\u673a 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 ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u83b7\u53d6 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u548c \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e 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 ) : # \u8ba1\u7b97 \u4e09\u7ef4 \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u8bbe\u7f6e \u8f93\u5165 \u5750\u6807 \u7684 \u683c\u5f0f \uff08 loc \u662f \u4e00\u4e2a carla . Position \u5bf9\u8c61 \uff09 point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u53d8\u6362 \u5230 \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( w2c , point ) # \u65b0 \u7684 \uff0c \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c standard \u201d # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u53bb\u6389 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u6210\u5206 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u76f8\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 ] \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 # \u83b7\u53d6 \u4e16\u754c \u7684 \u76f8\u673a \u77e9\u9635 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 ( ) # \u751f\u6210 \u8f66\u8f86 vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # \u751f\u6210 \u76f8\u673a 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 ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u83b7\u53d6 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u548c \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e 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 ) : # \u8ba1\u7b97 \u4e09\u7ef4 \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u8bbe\u7f6e \u8f93\u5165 \u5750\u6807 \u7684 \u683c\u5f0f \uff08 loc \u662f \u4e00\u4e2a carla . Position \u5bf9\u8c61 \uff09 point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u53d8\u6362 \u5230 \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( w2c , point ) # \u65b0 \u7684 \uff0c \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c standard \u201d # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u53bb\u6389 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u6210\u5206 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u76f8\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 ] \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 # \u83b7\u53d6 \u4e16\u754c \u7684 \u76f8\u673a \u77e9\u9635 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 \u8fd0\u884c make launch \u3001 make package \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 \uff08 \u6216 \u53c2\u8003 \u4e2d\u6587 \u6587\u6863 \uff09 \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 \u8fd0\u884c make launch \u3001 make package \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 \uff08 \u6216 \u53c2\u8003 \u4e2d\u6587 \u6587\u6863 \uff09 \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 \u4e16\u754c \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 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 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027"},{"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 \u4e16\u754c \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 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 \u7b14\u8bb0 \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 \uff1a \u6838\u5fc3 \u6982\u5ff5 \u3002 \u8fdb\u884c \u884c\u4eba \u5efa\u6a21 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 \u9aa8\u9abc \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u56fe \u53c2\u8003 \u94fe\u63a5 \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 \u884c\u4eba \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b \u3002 \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 \u884c\u4eba \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":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236"},{"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 \u7b14\u8bb0 \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 \uff1a \u6838\u5fc3 \u6982\u5ff5 \u3002 \u8fdb\u884c \u884c\u4eba \u5efa\u6a21 \u8bf7 \u53c2\u8003 \u94fe\u63a5 \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 \u9aa8\u9abc \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u56fe \u53c2\u8003 \u94fe\u63a5 \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 \u884c\u4eba \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b \u3002","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 \u884c\u4eba \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 # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u5c06 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f 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 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # \u5728 \u5730\u56fe \u4e0a \u67d0\u4e9b \u4f4d\u7f6e \u8bbe\u7f6e \u76f8\u673a 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 ) # \u83b7\u53d6 \u8bed\u4e49 \u76f8\u673a \u84dd\u56fe \u548c \u751f\u6210 \u76f8\u673a 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 # \u5728 \u76f8\u673a \u5468\u56f4 80 \u7c73 \u5185 \u751f\u6210 \u8f66\u8f86 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 # \u5c06 \u56fe\u7247 \u4fdd\u5b58 \u5230 \u78c1\u76d8 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 # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u5c06 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f 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 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # \u5728 \u5730\u56fe \u4e0a \u67d0\u4e9b \u4f4d\u7f6e \u8bbe\u7f6e \u76f8\u673a 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 ) # \u83b7\u53d6 \u8bed\u4e49 \u76f8\u673a \u84dd\u56fe \u548c \u751f\u6210 \u76f8\u673a 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 # \u5728 \u76f8\u673a \u5468\u56f4 80 \u7c73 \u5185 \u751f\u6210 \u8f66\u8f86 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 # \u5c06 \u56fe\u7247 \u4fdd\u5b58 \u5230 \u78c1\u76d8 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_lfs/","text":"\u5927 \u6587\u4ef6 \u652f\u6301 \u53c2\u8003 \u6559\u7a0b \u3002","title":"tuto G lfs"},{"location":"tuto_G_lfs/#_1","text":"\u53c2\u8003 \u6559\u7a0b \u3002","title":"\u5927 \u6587\u4ef6 \u652f\u6301"},{"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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u9500\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 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\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 \u9500\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_navigation/","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 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba AI \u63a7\u5236 \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70 \u76f8\u673a \u51e0\u4f55 \u6784\u5efa \u9aa8\u67b6 \u603b\u7ed3 \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 # \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4eff\u771f settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u6211\u4eec \u4e5f \u4f1a \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 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":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_navigation/#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 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba AI \u63a7\u5236 \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70 \u76f8\u673a \u51e0\u4f55 \u6784\u5efa \u9aa8\u67b6 \u603b\u7ed3","title":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_navigation/#_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 # \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4eff\u771f settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u6211\u4eec \u4e5f \u4f1a \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 "},{"location":"tuto_G_pedestrian_navigation/#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_navigation/#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_navigation/#_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_navigation/#_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_navigation/#_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 \u884c\u4eba \u63a7\u5236 \u654f\u6377 \u7684 \u884c\u4e3a \u6a21\u4eff \uff1a \u8df3\u821e \u57fa\u4e8e \u7269\u7406 \u7684 \u4eba\u5f62 \u63a7\u5236 \u63a7\u5236\u5668 \uff1a \u610f\u5916 \u8dcc\u5012 \u5bfc\u822a \u5728 \u6ca1\u6709 \u5730\u56fe \u7684 \u57ce\u5e02 \u5bfc\u822a","title":"tuto G pedestrian visual"},{"location":"tuto_G_pedestrian_visual/#_1","text":"","title":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce"},{"location":"tuto_G_pedestrian_visual/#_2","text":"\u654f\u6377 \u7684 \u884c\u4e3a \u6a21\u4eff \uff1a \u8df3\u821e \u57fa\u4e8e \u7269\u7406 \u7684 \u4eba\u5f62 \u63a7\u5236 \u63a7\u5236\u5668 \uff1a \u610f\u5916 \u8dcc\u5012","title":"\u884c\u4eba \u63a7\u5236"},{"location":"tuto_G_pedestrian_visual/#_3","text":"\u5728 \u6ca1\u6709 \u5730\u56fe \u7684 \u57ce\u5e02 \u5bfc\u822a","title":"\u5bfc\u822a"},{"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 # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u6a21\u62df \u6a21\u62df\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # \u5982\u679c \u6709 \u590d\u73b0 \u7684 \u5fc5\u8981 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u968f\u673a \u79cd\u5b50 traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # \u6211\u4eec \u4e5f \u4f1a \u542f\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u80fd \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 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 # \u83b7\u53d6 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \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 \uff0c \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u968f\u673a \u9009\u53d6 \u751f\u6210 \u70b9 \u7684 \u6837\u672c \u5e76 \u751f\u6210 \u8f66\u8f86 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 ) # \u89e3\u6790 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \uff0c \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u7ed9\u4e88 \u63a7\u5236 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 \u4ee3\u7406 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u4ee3\u7406 \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 # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u6a21\u62df \u6a21\u62df\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # \u5982\u679c \u6709 \u590d\u73b0 \u7684 \u5fc5\u8981 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u968f\u673a \u79cd\u5b50 traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # \u6211\u4eec \u4e5f \u4f1a \u542f\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u80fd \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 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 # \u83b7\u53d6 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \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 \uff0c \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u968f\u673a \u9009\u53d6 \u751f\u6210 \u70b9 \u7684 \u6837\u672c \u5e76 \u751f\u6210 \u8f66\u8f86 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 ) # \u89e3\u6790 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \uff0c \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u7ed9\u4e88 \u63a7\u5236 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 \u4ee3\u7406 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u4ee3\u7406 \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 \u884c\u4eba \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u884c\u4eba \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 # -------------- # \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u7684 \u89c2\u5bdf \u89c2\u5bdf\u8005 # -------------- 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 \u538b\u7ebf \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 # -------------- # \u7ed9 \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 # -------------- 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 ) ) \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \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 \u884c\u4eba \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 \u8bb0\u5f55 \u5b8c\u6210 \u540e \uff0c \u8bb0\u5f55 \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 \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 \u9500\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 ) ) \" \" \" # -------------- # \u7ed9 \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 # -------------- \" \" \" 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 \u884c\u4eba \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u884c\u4eba \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 # -------------- # \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u7684 \u89c2\u5bdf \u89c2\u5bdf\u8005 # -------------- 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 \u538b\u7ebf \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 # -------------- # \u7ed9 \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 # -------------- 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 ) ) \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa","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 \u884c\u4eba \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 \u8bb0\u5f55 \u5b8c\u6210 \u540e \uff0c \u8bb0\u5f55 \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 \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 \u9500\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 ) ) \" \" \" # -------------- # \u7ed9 \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 # -------------- \" \" \" 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 \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09"},{"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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 # \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u83b7\u53d6 \u65f6\u95f4 \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # \u5982\u679c \u6709 \u5fc5\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u79cd\u5b50 \uff0c \u4ee5\u4fbf \u80fd\u591f \u91cd\u73b0 \u884c\u4e3a traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # \u542f\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u80fd \u5f00\u5230 \u6240 \u505a \u7684 \u4e8b 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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u4ee3\u7406 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 \u53c2\u4e0e \u53c2\u4e0e\u8005 \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 # \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u83b7\u53d6 \u65f6\u95f4 \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # \u5982\u679c \u6709 \u5fc5\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u79cd\u5b50 \uff0c \u4ee5\u4fbf \u80fd\u591f \u91cd\u73b0 \u884c\u4e3a traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # \u542f\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5\u4fbf \u80fd \u5f00\u5230 \u6240 \u505a \u7684 \u4e8b 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 \u4ee3\u7406 \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":"\u4ea4\u901a\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